我正在使用Windows PC并在其上安装了cygwin!
我已将所有罐子组织在几个目录中的目录下!
我正在编写一个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
,因为CLASSPATH变量是在/cygdrive/c/Documents
之后分裂。
有人可以帮我解决这个问题吗?
答案 0 :(得分:11)
请参阅此article。
您可以在double qoutes
中包含完整的类路径java -classpath "C:/Documents and Settings/user/project/lib/axis.jar; C:/Documents and Settings/user/project/lib/axis-ant.jar;" TestClient
或类路径中的每个jar
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。