CLASSPATH中的空格

时间:2010-06-09 07:29:49

标签: java cygwin classpath

我正在使用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之后分裂。

有人可以帮我解决这个问题吗?

1 个答案:

答案 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。