我目前正在开发一个需要了解java编译器源代码的项目。我以前从未做过这么大的项目,我需要一些帮助。
我想找出编译器实际查找的源代码的哪一部分,并找到要编译的.java文件。
我看过非常大的java编译器源代码。我发现解析和代码生成阶段是相互独立的,但我不知道javac在哪里请求.java文件以及该文件的位置。
非常感谢任何帮助。
答案 0 :(得分:0)
javax.tools
包从JDK(JavaCompiler)为Java编译器提供基于Java的接口。
JavaCompiler
使用JavaFileManager的方法来查找和访问要编译的源文件。 StandardFileManager(默认使用)提供了一个getJavaFileObjectsFromFiles()方法,该方法提供对给定根目录中找到的所有java文件的迭代。
上面的链接将带您进入JDK源代码(如果您在修改这些源代码后确实要推出自己的版本,请阅读this);以及StandardFileManager
的JavaDoc。