2012-01-29 43 views
38

Từ dòng lệnh, làm cách nào để đặt tùy chọn Java CLASSPATH để trỏ đến một hoặc nhiều thư mục chứa nhiều tệp jar? Có các ký tự đại diện cho thư mục đệ quy và hỗ trợ thư mục con không?Đặt thư mục cho đường dẫn lớp

(. File JAR của tôi đều được sắp xếp trong một số thư mục con)

+1

Đường dẫn đến thư mục cấp cao nhất là đủ. – kosa

+6

Ngắt của http://stackoverflow.com/questions/219585/setting-multiple-jars-in-java-classpath – Vadzim

Trả lời

54

Nếu bạn đang sử dụng Java 6 hoặc cao hơn, bạn có thể sử dụng ký tự đại diện của mẫu này:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp 

Nếu bạn muốn thêm tất cả các thư mục con: lib \ a \, lib \ b \, lib \ c \, không có cơ chế cho điều này trong ngoại trừ:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp 

Chẳng gì lib\*\* hoặc lib\** w là ildcard cho loại công việc bạn muốn được thực hiện.

+14

Đó không phải là ý kiến ​​của tôi. Thực tế từ đây http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html Trích: 'Thư mục con không được tìm kiếm đệ quy. Ví dụ: foo/* chỉ tìm các tệp JAR trong foo, không phải trong foo/bar, foo/baz, v.v. – msi

+9

Và trong trường hợp bạn tự hỏi tại sao đường dẫn có ".;" lúc bắt đầu, nó là để đảm bảo rằng các đường dẫn lớp hiện có được thiết lập trong hệ thống thông qua các biến env vv không được ghi đè. –

+6

@msi Tôi xin lỗi, mục đích của tôi là cảm ơn phản hồi của bạn. – MJM

6

Sử dụng lệnh như

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name> 

Lệnh trên sẽ thiết lập các đường dẫn đề cập đến classpath chỉ một lần để thực hiện các lớp có tên TestClass.

Nếu bạn muốn thực hiện nhiều hơn sau đó một lớp học, sau đó bạn có thể làm theo này

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*" 

Sau này bạn có thể thực hiện như nhiều lớp như bạn muốn chỉ bằng cách đơn giản gõ

java <your-class-name> 

Trên đây lệnh sẽ làm việc cho đến khi bạn đóng dấu nhắc lệnh. Nhưng sau khi đóng dấu nhắc lệnh, nếu bạn sẽ mở lại dấu nhắc lệnh và thử thực hiện một số lớp, thì bạn phải thiết lập lại classpath với sự trợ giúp của bất kỳ phương thức nào đã đề cập ở trên. một để thực hiện nhiều lớp)

Nếu bạn muốn thiết lập các classpth chỉ một lần để nó có thể làm việc cho mọi lúc, sau đó làm như sau

1. Right click on "My Computer" icon 
2. Go to the "properties" 
3. Go to the "Advanced System Settings" or "Advance Settings" 
4. Go to the "Environment Variable" 
5. Create a new variable at the user variable by giving the information as below 
    a. Variable Name-  classpath 
    b. Variable Value- .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\* 
6.Apply this and you are done. 

Hãy nhớ điều này sẽ làm việc mọi lúc. Bạn không cần thiết lập rõ ràng classpath một lần nữa và một lần nữa.

LƯU Ý: Nếu bạn muốn thêm một số lib khác sau một ngày, sau đó đừng quên thêm dấu chấm phẩy ở cuối "biến giá trị" của "Biến môi trường" và sau đó nhập đường dẫn của libs mới của bạn sau dấu chấm phẩy. Bởi vì dấu chấm phẩy tách các đường dẫn của các thư mục khác nhau.

Hy vọng điều này sẽ giúp bạn.

Các vấn đề liên quan