6

如果我有

CLASSPATH=/blah;/foo

然后运行

java -cp bar.jar com.yourcompany.SomeMain

现在是类路径

bar.jar

或者是

/blah;/foo;bar.jar

基本上命令行开关会覆盖或增加现有的CLASSPATH?

4

3 回答 3

4

看起来 -cp 选项覆盖了 CLASSPATH 环境变量。

$ export CLASSPATH=Tests
$ java Printf
Team Name                      No. of Wins          No. of Losses        
Bobcats                        0                    0                    
Tigers                         1                    1                    
Lions                          2                    2                    
Cheetahs                       3                    3                    
Jackals                        4                    4                    
Leopards                       5                    5                    
Snow Leopards                  6                    6                    
Cougars                        7                    7                    
Mountain Lions                 8                    8                    
Bobcats                        9                    9                    
$ java -cp . Printf
Error: Could not find or load main class Printf

CLASSPATH 环境变量仍设置为文件夹 Tests,但是,当我使用该-cp选项时,它会覆盖它,并将类路径更改为.当前目录,因此我的类文件无法再找到。

于 2013-03-25T01:53:11.917 回答
2

是的!,cp 或 classpath 选项会覆盖系统变量。了解更多信息

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html

于 2013-03-25T01:49:41.530 回答
2

-cp 命令行开关覆盖。事实上,还有一些其他的东西会覆盖 CLASSPATH 环境变量,例如 -jar 开关或 IDE 特定的类路径设置。

在任何情况下,如果您想快速查看在运行代码时引用了哪个类路径,您可以考虑在您的类中显示这一行。

System.getProperty("java.class.path");
于 2013-03-25T02:16:15.410 回答