1

如果一个java源文件依赖于一个外部JAR文件,我们需要将外部依赖的路径提供给java编译器:

javac -cp [path-to-external-JAR] foo.java

jar cvf foo.jar foo.class 

同样,当我们需要执行这个 jar 文件时,我们需要将外部依赖的路径提供给 JVM:

java -cp [path-to-external-JAR]:foo.jar foo
4

3 回答 3

2

编译器需要引用,因为它必须检查您正在调用或覆盖的类和方法是否存在,并且可以被调用/覆盖。

JVM 需要它们,因为它必须执行这些类和方法中的指令。

于 2013-02-09T13:22:11.287 回答
1

显然 java (vm) 需要类定义才能运行。Javac 需要类型信息的类声明...

为了处理它们操作的源代码,javac 和 javadoc 必须获取源代码中使用的对象类型的信息。

参考 - Oracle 文档

于 2013-02-09T13:27:45.660 回答
0

否则它必须最终在整个文件系统中搜索您在应用程序中使用的外部类。

于 2013-02-09T14:39:12.640 回答