“java -cp”只是“java -classpath”的缩写吗?

问题描述 投票:0回答:3

在命令行上

java -cp
只是
java -classpath
的缩写吗?

(我似乎记得他们可能有不同的行为,但找不到明确的文档)。

java classpath
3个回答
8
投票

它们曾经是不同的,但现在它们是相同的(因此为了兼容性而接受两者)。最初,-classpath 需要有classes.zip (Java 1.0/1.1) 或rt.jar (Java 1.2+) 才能运行。因此,如果您运行 -classpath my.jar,它将不起作用(因为它找不到 java.lang.Object 和朋友)。因此,添加了 -cp ,它将把类路径/jar 添加到列表中,但不会覆盖classes.zip/rt.jar 条目。

但是,这种行为有时发生了变化(1.4?1.5?),因此您不再需要通过 -classpath 将条目放在“系统”类路径上,之后它们是相同的。

您可能可以运行 1.3 或 1.4 时代的命令(如果您仍然有它们)来验证更改何时发生。


8
投票

在 Windows 中,

java -help

在每个下面都写着

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
              A ; separated list of directories, JAR archives,
              and ZIP archives to search for class files.

看起来很清楚。他们都做同样的事情。所以,是的,这是一个别名。


0
投票

有关命令行参数的信息,请参阅JDK 工具和实用程序文档。

© www.soinside.com 2019 - 2024. All rights reserved.