我正在使用 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
,它会抛出一个错误,指出未找到类 和
,因为 CLASSPATH 变量在 /cygdrive/c/Documents
之后被拆分。
有人可以帮我解决这个问题吗?
最佳答案
查看此 article .
您可以将完整的类路径包含在双引号中
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
很难看清,但我移动了结束双引号。
关于java - CLASSPATH 中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003830/