Rol*_*all 11 java javac classpath
是什么在调用的差异-classpath从选项javac,并从java
例如:
javac -classpath MyJar.jar GetJar.java
java -classpath MyJar.jar:. GetJar
Run Code Online (Sandbox Code Playgroud)
它的工作原理如下:
javac -classpath MyJar.jar GetJar.java
java GetJar
Run Code Online (Sandbox Code Playgroud)
所以基本上相关的第一个类路径javac需要在那里,另一方面在java命令行中它可能是可选的.为什么?你知道在什么情况下它是强制性的.更一般来说,被-classpath调用的效果是javac什么,被-classpath调用的效果是什么java.
提前致谢.
Per*_*ion 11
一个是用于编译的类路径.另一个是用于运行的类路径.而且他们不必须是同样的事情.编译过程所需的类集是所有正在编译的类所引用的类.而您的运行时JAR可能正在调用具有空main方法且没有依赖项的独立类.
请记住,在运行时类依赖项是动态解析的,即只在需要时才加载类(这是一种泛化,始终加载引导和系统类).