12

从和从调用-classpath选项有什么区别javacjava

例如:

javac -classpath MyJar.jar GetJar.java
java -classpath MyJar.jar:. GetJar

它的工作原理以及:

javac -classpath MyJar.jar GetJar.java
java GetJar

所以基本上与第一个-classpath相关的地方javac需要在那里,另一方面在java命令行中它可能是可选的。为什么?你知道在什么情况下它是强制性的。更一般地说,被-classpath调用的效果是什么,被调用的javac效果是什么。-classpathjava

提前致谢。

4

2 回答 2

11

一种是用于编译的类路径。另一个是用于运行的类路径。他们不必同一件事。编译过程所需的类集是每个正在编译的类所引用的所有类。而您的运行时 JAR 可能正在调用具有空 main 方法且没有依赖项的独立类。

请记住,在运行时类依赖关系是动态解析的,也就是只在需要时加载一个类(这是一个概括,总是加载引导和系统类)。

于 2013-02-27T20:28:46.240 回答
1

本文档包含您的问题的答案

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html

每次使用-classpath都是一项非常耗时的工作。相反,使用环境变量(如果您正在处理诸如 Java Mail 之类的包)

类路径用于编译。Javac是 Java 编译器,它将您的代码转换为字节码。

当涉及到java它时,它用于运行您的 Java 源文件/jar。

于 2013-02-27T21:00:15.967 回答