export CLASSPATH=.;../somejar.jar;../mysql-connector-java-5.1.6-bin.jar
java -Xmx500m folder.subfolder../dit1/some.xml
cd ..
以上语句用于将类路径设置为linux中已存在的类路径是否正确
答案 0 :(得分:25)
我不喜欢设置CLASSPATH。 CLASSPATH是一个全局变量,因此它是邪恶的:
因此,首选方法是每次运行jvm时设置类路径,例如:
java -Xmx500m -cp ".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" "folder.subfolder../dit1/some.xml
如果它变长,标准程序是将其包装在bash或批处理脚本中以节省输入。
答案 1 :(得分:16)
除非你有充分的理由,否则建议永远不要破坏性地销毁现有的类路径。
以下行保留现有的类路径并添加到其上。
export CLASSPATH="$CLASSPATH:foo.jar:../bar.jar"
答案 2 :(得分:11)
在Windows和Linux中设置Classpath之间的重要区别是路径分隔符,即&#34 ;;" Windows中的(分号)和":" Linux中的(冒号)。此外,%PATH%
用于表示Windows中现有路径变量的值,而${PATH}
在Linux中用于相同目的(在bash shell中)。以下是在Linux中设置类路径的方法:
export CLASSPATH=${CLASSPATH}:/new/path
但是这样的Classpath非常棘手,你可能想知道为什么你的程序即使在设置了正确的Classpath之后也无法工作。注意事项:
-cp
选项会覆盖CLASSPATH
环境变量。-cp
和CLASSPATH
envorinment变量。答案 3 :(得分:6)
linux下的路径由冒号(:
)分隔,而不是分号(;
),因为theatrus在他的示例中正确使用了它。我相信Java尊重这个惯例。
除andy suggested之外,您可以使用以下格式(在命令期间设置CLASSPATH):
CLASSPATH=".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" java -Xmx500m ...
对你来说更方便。