0%

javac编译需加载依赖的依赖

一、问题描述

有源码文件“A.java”,“A.java”依赖于“B.class”,而“B.class”又依赖于“C.class”。使用javac工具编译“A.java”,要想成功编译“A.java”,既需要加载“B.class”,还需要加载“C.class”。

二、分析解决

其实一般情形下,使用javac工具编译“A.java”,要想成功编译“A.java”,只需要加载“B.class”即可。现在还需要加载“C.class”,原因可能有:

  • javac版本实现有bug
  • javac版本针对新的Java语言语法的确需要再加载依赖的依赖

总结来说,javac编译时是否加载依赖的依赖跟具体实现相关,这个知识点并不很重要,因此无需过多关注。


参考文献: [1]https://stackoverflow.com/questions/40255718/compiling-with-jdk-1-8-java-cannot-access-class-file-class-file-not-found [2]https://bugs.openjdk.java.net/browse/JDK-8055048 [3]http://openjdk.java.net/groups/compiler/doc/hhgtjavac/index.html [4]http://scg.unibe.ch/archive/projects/Erni08b.pdf
您的支持将鼓励我继续分享!