CLASSPATH中的空格
我正在使用Windows PC并在其上安装了cygwin! 我已将所有jar子组织在几个目录中的目录下! 我正在编写一个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变量会被拆分。
有人可以帮我解决这个问题吗?
看到这篇文章 。
您可以在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。