export CLASSPATH =。; ../ somejar.jar; ../ mysql-connector-java-5.1.6-bin.jar java -Xmx500m folder.subfolder ../ dit1 / some.xml cd ..
是上面的语句,用于将类path设置为在Linux中已经存在的类path是否正确
我不喜欢设置CLASSPATH。 CLASSPATH是一个全局变量,因此它是邪恶的:
因此,首选的方法是在每次运行jvm时设置类路径,例如:
java -Xmx500m -cp ".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" "folder.subfolder../dit1/some.xml
如果时间长了,标准的程序就是把它换成bash或批处理脚本来保存输入。
总是建议不要破坏性地破坏现有的类路径,除非你有充分的理由。
以下行保留现有的类路径并添加到它。
export CLASSPATH="$CLASSPATH:foo.jar:../bar.jar"
在Windows和Linux中设置Classpath的重要区别是路径分隔符是“;” (分号)和Linux中的“:”(冒号)。 另外, %PATH%
用于表示Windows中现有路径变量的值,而${PATH}
用于Linux(在bash shell中)的相同用途。 这里是在Linux中设置类路径的方法:
export CLASSPATH=${CLASSPATH}:/new/path
但是因为这样的Classpath非常复杂,所以你可能想知道为什么你的程序在设置正确的Classpath之后仍然不能正常工作。 注意事项:
-cp
选项将覆盖CLASSPATH
环境变量。 -cp
和CLASSPATH
envorinment变量。 参考: Classpath如何在Java中工作 。
linux下的路径是用冒号(:)分隔的,而不是分号( ;
),因为在他的例子中正确使用它。 我相信Java尊重这个惯例。
或者,你可以使用下面的形式(在命令期间设置CLASSPATH):
CLASSPATH=".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" java -Xmx500m ...
以你方便为准。