-cp和-classpath之间有什么区别

roo*_*oot 8 java command-line

使用之间有什么区别

javac -cp classes helloworld.java

javac -classpath classes helloworld.java

在CMD?

JFP*_*ard 5

它们是相同的,请查看http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

-classpath classpath -cp classpath指定用于搜索类文件的目录,JAR文件和ZIP存档的列表.用分号(;)分隔类路径条目.指定-classpath或-cp会覆盖CLASSPATH环境变量的任何设置.

如果未使用-classpath和-cp且未设置CLASSPATH,则用户类路径由当前目录(.)组成.

作为一种特殊的方便,包含基本名称*的类路径元素被认为等同于指定扩展名为.jar或.JAR的目录中所有文件的列表.Java程序无法区分两次调用之间的区别.

例如,如果目录mydir包含a.jar和b.JAR,则类路径元素mydir/*将扩展为A.jar:b.JAR,但jar文件的顺序未指定.指定目录中的所有jar文件,甚至是隐藏的文件都包含在列表中.简单地由*组成的类路径条目扩展为当前目录中所有jar文件的列表.定义的CLASSPATH环境变量将同样进行扩展.任何类路径通配符扩展都在Java VM启动之前发生.除了查询环境之外,任何Java程序都不会看到未扩展的外卡.例如,通过调用System.getenv("CLASSPATH").