Я работаю над Windows PC и имею cygwin на нем! Я организовал все свои банки в соответствии с каталогом в рамках нескольких каталогов! Я пишу a bash
сценарий для установки 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
не найден, потому что переменная ПУТИ К КЛАССУ становится разделенной после /cygdrive/c/Documents
.
Кто-то может помочь мне решить эту проблему?
См. эту статью.
Вы можете заключить либо полный classpath в двойные qoutes
java -classpath "C:/Documents and Settings/user/project/lib/axis.jar; C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient
или каждый jar в вашем classpath
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.