Java 如何在Linux上设置类路径?
我需要一个标题中问题的答案Java 如何在Linux上设置类路径?,java,linux,Java,Linux,我需要一个标题中问题的答案 谢谢。以下是我通过谷歌找到的两个不错的教程: 或保留系统范围的设置: export CLASSPATH=$CLASSPATH:/your/addition/ 如果您指的是Java类路径(来自您的标记),那么这与Windows在路径分隔符(:而不是;)方面只是不同。比如说 java -classpath /mydir/mylib.jar:/otherdir/otherlib.jar com.MyProgram -Xmx64m 我认为您不应该在Linux或任何其他
谢谢。以下是我通过谷歌找到的两个不错的教程:
或保留系统范围的设置:
export CLASSPATH=$CLASSPATH:/your/addition/
如果您指的是Java类路径(来自您的标记),那么这与Windows在路径分隔符(:而不是;)方面只是不同。比如说
java -classpath /mydir/mylib.jar:/otherdir/otherlib.jar com.MyProgram -Xmx64m
我认为您不应该在Linux或任何其他操作系统上使用系统类路径环境变量 每个项目都应该有自己的类路径设置。它们通常由脚本或约定设置,因此不需要系统环境变量 此外,如果两个项目需要冲突的JAR,您会怎么做 该环境类路径是否包括您机器上每个项目所需的每个JAR?那不实际
classpath环境变量可能是Java 1.0的标准,但我认为现在不应该是这样。创建一个设置classpath的小型shell脚本:
#!/bin/bash
export JAVA_HOME=...
cp=$(find lib -name "*.jar" -exec printf :{} ';')
if [[ -n "$CLASSPATH" ]]; then
cp="$cp;CLASSPATH"
fi
"$JAVA_HOME/bin/java" -classpath "$cp" ...
这是什么贝壳?BASH、TCSH、BOURNE……每个进程都可以设置一个类路径变量,即仅针对当前shell及其派生的子进程。这在unix上的java启动脚本中很常见。您可以省略-classpath“$classpath”,因为java进程随时都会使用环境变量classpath的内容;它现在只保留类路径,以便子进程可以获取原始版本。
#!/bin/bash
export JAVA_HOME=...
cp=$(find lib -name "*.jar" -exec printf :{} ';')
if [[ -n "$CLASSPATH" ]]; then
cp="$cp;CLASSPATH"
fi
"$JAVA_HOME/bin/java" -classpath "$cp" ...