在命令行上
java -cp
只是 java -classpath
的缩写吗?
(我似乎记得他们可能有不同的行为,但找不到明确的文档)。
它们曾经是不同的,但现在它们是相同的(因此为了兼容性而接受两者)。最初,-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 时代的命令(如果您仍然有它们)来验证更改何时发生。
在 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.
看起来很清楚。他们都做同样的事情。所以,是的,这是一个别名。
有关命令行参数的信息,请参阅JDK 工具和实用程序文档。