Пробелы в CLASSPATH

Я работаю на ПК с ОС Windows, и у меня есть cygwin! Я организовал все мои банки под каталогом в нескольких каталогах! Я пишу bash script для установки CLASSPATH путем итерации через каталог, который передается как параметр следующим образом:

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

Всякий раз, когда в каталоге, который передается как /cygdrive/c/Documents and Settings/user/My Jars, есть пробелы, и я запускаю java -cp $CLASSPATH somepackage.someclass, он выдает сообщение об ошибке, указывающее, что класс and не найден, потому что переменная CLASSPATH получает разделение после /cygdrive/c/Documents.

Может кто-нибудь помочь мне решить эту проблему?

Ответ 1

См. статью .

Вы можете заключить либо полный путь к классам в двойных qoutes

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

или каждая банка в вашем пути к классу

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

В вашем случае что-то вроде этого:

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

Трудно видеть, но я переместил закрывающий двойной qoute.