在 Linux 中添加类路径

2022-09-04 05:00:51
export CLASSPATH=.;../somejar.jar;../mysql-connector-java-5.1.6-bin.jar
java -Xmx500m folder.subfolder../dit1/some.xml
cd ..

上述用于将类路径设置为 Linux 中已存在的类路径的语句是否正确


答案 1

我不喜欢设置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或批处理脚本中以保存键入。


答案 2

始终建议永远不要破坏性地销毁现有的类路径,除非你有充分的理由。

以下行保留现有的类路径并添加到其中。

export CLASSPATH="$CLASSPATH:foo.jar:../bar.jar"

推荐