java--classpath是覆盖类路径还是附加到类路径上?

java--classpath是覆盖类路径还是附加到类路径上?,java,classpath,Java,Classpath,如果我有 CLASSPATH=/blah;/foo 然后跑 java -cp bar.jar com.yourcompany.SomeMain 现在是类路径吗 bar.jar 还是这样 /blah;/foo;bar.jar 命令行开关基本上覆盖或扩充了现有的类路径吗?是!,cp或classpath选项覆盖系统变量。 更多信息 看起来-cp选项覆盖了CLASSPATH环境变量 $ export CLASSPATH=Tests $ java Printf Team Name

如果我有

CLASSPATH=/blah;/foo
然后跑

java -cp bar.jar com.yourcompany.SomeMain
现在是类路径吗

bar.jar
还是这样

/blah;/foo;bar.jar

命令行开关基本上覆盖或扩充了现有的
类路径吗?

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


看起来-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环境变量仍然设置为文件夹测试,但是,当我使用
-cp
选项时,它会覆盖它,并将CLASSPATH更改为当前目录
,因此无法再找到我的类文件。

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

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

System.getProperty("java.class.path");

实际上,您给出的链接没有说明-cp是否覆盖环境变量。它只表示环境变量和-cp覆盖默认值(即当前目录)。是的,谢谢,链接已更新!