JavaCompiler接口的使用及其默认实现

JavaCompiler接口的使用及其默认实现,java,java-compiler-api,dynamic-compilation,Java,Java Compiler Api,Dynamic Compilation,我试图理解默认的JavaCompiler实现是如何实现的,您可以通过调用ToolProvider.getSystemJavaCompiler()来获得它 如何将其与JavaFileManager一起使用 我知道编译器使用给定的文件管理器(通过getTaskmethod的一个参数)来搜索源文件,并决定将编译后的输出放在何处——但是如何 例如,对于源代码,它是使用getJavaFileForInput()方法还是getFileForInput() 如何使用诊断侦听器? 我将diagnosticste

我试图理解默认的
JavaCompiler
实现是如何实现的,您可以通过调用
ToolProvider.getSystemJavaCompiler()
来获得它

如何将其与
JavaFileManager
一起使用

我知道编译器使用给定的文件管理器(通过
getTask
method的一个参数)来搜索源文件,并决定将编译后的输出放在何处——但是如何

例如,对于源代码,它是使用
getJavaFileForInput()
方法还是
getFileForInput()

如何使用诊断侦听器? 我将
diagnosticstener
对象传递给
getTask
方法,即使编译失败,也没有向该对象写入任何内容

如何调试我做错了什么

是否有详细说明默认编译器如何使用
getTask
参数的地方?不是用JavaDoc写的