将使用-classpath
选项与java
,添加或替换CLASSPATH
env变量的内容?Java -classpath选项
回答
是的。从java(1)
手册页引述:
-classpath classpath
-cp classpath
Specifies a list of directories, JAR archives, and ZIP archives to search for class files. Class
path entries are separated by colons (:). Specifying -classpath or -cp overrides any setting of the
CLASSPATH environment variable.
If -classpath and -cp are not used and CLASSPATH is not set, the user class path consists of the cur-
rent directory (.).
根据这个,环境变量根本不*更新。我不明白答案是“是”。 – 2010-01-29 11:14:42
@ S.洛特 - 从谁的角度来看?从*程序的*角度来看,CLASSPATH值(如果存在)被替换。从* shell的角度来看,CLASSPATH值不会改变。我认为最初的问题只是措辞不当。 – Nate 2010-01-29 13:49:29
无论是其中一个选项时,不能同时使用。
指定-classpath或-cp将覆盖CLASSPATH环境变量的任何设置。
...
-classpath选项是首选,因为你可以为每个应用程序单独设置而不会影响其他应用程序,并在不修改它的价值的其他应用程序。
...
设置CLASSPATH变量或使用-classpath命令行选项将覆盖默认的,所以如果你想在搜索路径当前目录,则必须包含“ “。在新的设置中。
使用-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)无法找到尽管包含CWD CLASSPATH环境变量的
类文件(“” ) 在里面。
%java -cp /home/test CPTest
Exception in thread "main" java.lang.NoClassDefFoundError: CPTest
- 1. java设置classpath
- 2. Java ClassPath与java.lang.NoClassDefFoundError
- 3. java classloading classpath
- 4. java编译classpath
- 5. Java Classpath问题
- 6. Java import,without CLASSPATH
- 7. $ CLASSPATH和-cp与Java
- 8. Java URL协议:classpath:/?
- 9. Java classpath jdbc问题
- 10. 当用``hadoop classpath`的-cp选项执行时,无法加载类
- 11. ant java jar classpath问题
- 12. 在linux中设置Java Classpath?
- 13. “java -classpath。:”是什么意思?
- 14. java-Maven assembly plugin build class classpath
- 15. 在Runtime.exec中设置classpath java
- 16. Java Lucene Classpath问题ubuntu
- 17. java --classpath是否覆盖CLASSPATH或追加到它?
- 18. 基于Java的H2数据库无法找到项目在CLASSPATH
- 19. Java Webstart选项
- 20. 选项 - Java getters
- 21. Maven eclipse classpath error
- 22. appassembler和long classpath
- 23. Java jar -C选项
- 24. 首选项Libgdx Java
- 25. JAVA存储选项
- 26. Java选择项目
- 27. Java搜索选项
- 28. Java和GUI选项
- 29. Ini4j classpath no class
- 30. classpath的用法
好问题。我从来没有想过它 – marionmaiden 2010-01-29 11:12:53
你想知道环境变量是否改变?你运行了一个测试来实际*看到*如果它改变了吗? – 2010-01-29 11:14:03
为什么不自己尝试一下? – 2010-01-29 12:06:55