Javac vs Java in -classpath选项
从javac
和java
调用-classpath
选项有什么区别
例如:
javac -classpath MyJar.jar GetJar.java java -classpath MyJar.jar:. GetJar
它的工作原理如下:
javac -classpath MyJar.jar GetJar.java java GetJar
所以基本上在与javac
相关的第一个类路径需要在那里,另一方面在java命令行中它可能是可选的。 为什么? 你知道在什么情况下它是强制性的。 更一般地说, javac
调用的-classpath
的效果是什么, java
调用的-classpath
的效果是什么。
提前致谢。
一个是用于编译的类路径。 另一个是用于运行的类路径。 而且他们不必是同一件事。 编译过程所需的类集是所有正在编译的类所引用的类。 而您的运行时JAR可能正在调用具有空main方法且没有依赖项的独立类。
请记住,在运行时类依赖项是动态解析的,即只在需要时才加载类(这是一种泛化, 始终加载引导和系统类)。
本文档包含您的问题的答案
http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html
每次使用-classpath
是一项非常耗时的工作。 相反,使用环境变量(如果您正在处理诸如Java Mail之类的包)
classpath用于编译。 Javac
是Java编译器,它将代码转换为字节代码。
说到java
它用于运行Java源文件/ jar。