在linux中添加classpath

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是一个全局变量,因此它是邪恶的:

  • 如果你修改它在一个脚本,突然一些Java程序将停止工作。
  • 如果你把所有你运行的东西放在那里,它会变得混乱。
  • 如果两个不同的应用程序使用同一个库的不同版本,则会发生冲突。
  • 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之后仍然不能正常工作。 注意事项:

  1. -cp选项将覆盖CLASSPATH环境变量。
  2. 清单文件中定义的类路径覆盖-cpCLASSPATH envorinment变量。

参考: Classpath如何在Java中工作 。

linux下的路径是用冒号(:)分隔的,而不是分号( ; ),因为在他的例子中正确使用它。 我相信Java尊重这个惯例。

编辑

或者,你可以使用下面的形式(在命令期间设置CLASSPATH):

 CLASSPATH=".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" java -Xmx500m ... 

以你方便为准。