在java编译器源代码中,编译器会查找要编译的.java文件

时间:2014-06-04 16:10:28

标签: java parsing code-generation javac

我目前正在开发一个需要了解java编译器源代码的项目。我以前从未做过这么大的项目,我需要一些帮助。

我想找出编译器实际查找的源代码的哪一部分,并找到要编译的.java文件。

我看过非常大的java编译器源代码。我发现解析和代码生成阶段是相互独立的,但我不知道javac在哪里请求.java文件以及该文件的位置。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

javax.tools包从JDK(JavaCompiler)为Java编译器提供基于Java的接口。

JavaCompiler使用JavaFileManager的方法来查找和访问要编译的源文件。 StandardFileManager(默认使用)提供了一个getJavaFileObjectsFromFiles()方法,该方法提供对给定根目录中找到的所有java文件的迭代。

上面的链接将带您进入JDK源代码(如果您在修改这些源代码后确实要推出自己的版本,请阅读this);以及StandardFileManager的JavaDoc。