什么是-cp和-classpath之间的区别

时间:2015-04-03 14:35:52

标签: java command-line

使用

之间的区别是什么

javac -cp classes helloworld.java

javac -classpath classes helloworld.java

在CMD?

3 个答案:

答案 0 :(得分:5)

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

  

-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")。

答案 1 :(得分:2)

绝对没有区别。它只是告诉Java编译器您要使用在命令行参数中指定的自定义类路径。

所以-cp-classpath完全等效。

您可以在javac - Java programming language compiler页面找到更多信息。

答案 2 :(得分:1)

没有。它们是设置类路径的两种选择。请参阅man page