将使用 -classpath
选项和 java
添加或替换 CLASSPATH
环境变量的内容?
原文由 Zacky112 发布,翻译遵循 CC BY-SA 4.0 许可协议
将使用 -classpath
选项和 java
添加或替换 CLASSPATH
环境变量的内容?
原文由 Zacky112 发布,翻译遵循 CC BY-SA 4.0 许可协议
-cp 选项的使用不会影响 CLASSPATH 环境变量。
您可以尝试这个小代码片段来检查:
public class CPTest {
public static void main (final String[] args) {
String cp = System.getenv("CLASSPATH");
System.out.println(cp);
}
}
%echo $CLASSPATH
/home/test/:.
没有 -cp 选项的输出:
%java CPTest
/home/test/:.
带有 -cp 选项的输出:
%java -cp /home/xanadu:. CPTest
/home/test/:.
两次调用的输出相同(一次使用 -cp,一次不使用)。
另外,在 CLASSPATH 环境变量中指定的路径是
使用或使用 -cp 选项指定的路径。它不是两者的混合,而是其中之一。
从下面的调用中可以明显看出这一点。如果 CWD(当前工作目录 “.” )
被排除在 -cp 选项之外,JVM 启动器(即 java)无法找到
class 文件,尽管 CLASSPATH 环境变量中包含 CWD ( ”.” )。
%java -cp /home/test CPTest
Exception in thread "main" java.lang.NoClassDefFoundError: CPTest
原文由 sateesh 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
使用类路径变量,它会覆盖环境变量的 CLASSPATH,但仅限于该会话。如果重新启动应用程序,则需要再次设置类路径变量。