2010-06-09 7 views
10

Tôi đang làm việc trên PC Windows và có Cygwin trên đó! Tôi đã tổ chức tất cả các lọ của tôi dưới một thư mục trong một vài thư mục! Tôi đang viết một kịch bản bash để thiết lập CLASSPATH bằng cách duyệt qua các thư mục đó được truyền như một tham số như sau:Khoảng trắng trong CLASSPATH

for JAR_FILE in `ls *.jar` 
do 
    CLASSPATH="$DIRECTORY_TO_LOOK_FOR_JARS"/$JAR_FILE:$CLASSPATH 
done 

Bất cứ khi nào có khoảng trống trong thư mục đó là thông qua như /cygdrive/c/Documents and Settings/user/My Jars và tôi chạy java -cp $CLASSPATH somepackage.someclass, nó ném một lỗi nói rằng lớp and không được tìm thấy, bởi vì biến CLASSPATH được tách ra sau /cygdrive/c/Documents.

Ai đó có thể giúp tôi giải quyết vấn đề này không?

Trả lời

10

Xem điều này article.

Bạn có thể gửi kèm theo một trong hai classpath đầy đủ trong qoutes đôi

java -classpath "C:/Documents and Settings/user/project/lib/axis.jar; C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient 

hoặc từng jar trong classpath

java -classpath "C:/Documents and Settings/user/project/lib/axis.jar"; "C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient 

của bạn Trong trường hợp một cái gì đó của bạn như thế:

for JAR_FILE in `ls *.jar` 
do 
    CLASSPATH="$DIRECTORY_TO_LOOK_FOR_JARS/$JAR_FILE":$CLASSPATH 
done 

Khó thấy, nhưng tôi đã di chuyển qoute kép đóng.