-cp 和 -classpath 有什么区别

What's the difference between -cp and -classpath

使用有什么区别

javac -cp classes helloworld.java

javac -classpath classes helloworld.java

在 CMD 中?

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

所以-cp-classpath是完全等价的。

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

有none。它们都是设置类路径的选项。见 man page.

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

-classpath classpath -cp classpath Specifies a list of directories, JAR files, and ZIP archives to search for class files. Separate class path entries with semicolons (;). Specifying -classpath or -cp overrides any setting of the CLASSPATH environment variable.

If -classpath and -cp are not used and CLASSPATH is not set, then the user class path consists of the current directory (.).

As a special convenience, a class path element that contains a base name of * is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR. A Java program cannot tell the difference between the two invocations.

For example, if directory mydir contains a.jar and b.JAR, then the class path element mydir/* is expanded to a A.jar:b.JAR, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A class path entry consisting simply of * expands to a list of all the jar files in the current directory. The CLASSPATH environment variable, where defined, will be similarly expanded. Any class path wildcard expansion occurs before the Java VM is started. No Java program will ever see wild cards that are not expanded except by querying the environment. For example, by calling System.getenv("CLASSPATH").