Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果一个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
编译器需要引用,因为它必须检查您正在调用或覆盖的类和方法是否存在,并且可以被调用/覆盖。
JVM 需要它们,因为它必须执行这些类和方法中的指令。
显然 java (vm) 需要类定义才能运行。Javac 需要类型信息的类声明...
为了处理它们操作的源代码,javac 和 javadoc 必须获取源代码中使用的对象类型的信息。
参考 - Oracle 文档
否则它必须最终在整个文件系统中搜索您在应用程序中使用的外部类。