请参见:
描述
接口摘要 | |
---|---|
Diagnostic<S> | 用于来自工具的诊断的接口。 |
DiagnosticListener<S> | 用于接收来自工具的诊断的接口。 |
FileObject | 工具的文件抽象。 |
JavaCompiler | 从程序中调用 Java™ 编程语言编译器的接口。 |
JavaCompiler.CompilationTask | 表示编译任务的 future 的接口。 |
JavaFileManager | 在 Java™ 编程语言源和类文件之上进行操作的工具的文件管理器。 |
JavaFileManager.Location | 文件对象位置的接口。 |
JavaFileObject | 在 Java™ 编程语言源和类文件上进行操作的工具的文件抽象。 |
OptionChecker | 识别选项的接口。 |
StandardJavaFileManager | 基于 java.io.File 的文件管理器。 |
Tool | 可以从程序中调用的工具的公共接口。 |
类摘要 | |
---|---|
DiagnosticCollector<S> | 提供将诊断收集到一个列表中的简单方法。 |
ForwardingFileObject<F extends FileObject> | 将调用转发到给定的文件对象。 |
ForwardingJavaFileManager<M extends JavaFileManager> | 将调用转发到给定的文件管理器。 |
ForwardingJavaFileObject<F extends JavaFileObject> | 将调用转发到给定的文件对象。 |
SimpleJavaFileObject | 为 JavaFileObject 中的大多数方法提供简单实现。 |
ToolProvider | 为查找工具提供者提供方法,例如,编译器的提供者。 |
枚举摘要 | |
---|---|
Diagnostic.Kind | 诊断的种类,例如,错误或者警告。 |
JavaFileObject.Kind | JavaFileObject 的种类。 |
StandardLocation | 文件对象的标准位置。 |
为能够从程序(例如,编译器)中调用的工具提供接口。
要求这些接口和类作为 Java™Platform, Standard Edition (Java SE) 的一部分,但是不要求提供任何实现它们的工具。
除非明确允许,否则只要给定 null
参数或给定包含 null
元素的列表或集合,此包中的所有方法都将抛出 NullPointerException。类似地,除非明确允许,否则所有方法都不可以返回 null
。
此包是 Java 编程语言编译器框架的主要部分。此框架允许框架的客户端查找并运行程序中的编译器。该框架还为结构化访问诊断(DiagnosticListener)提供服务提供者接口(SPI),为重写文件访问提供文件抽象(JavaFileManager 和 JavaFileObject)。有关使用 SPI 的详细信息,请参阅 JavaCompiler。
运行时不需要编译器。然而,如果提供了默认编译器,则可以使用 ToolProvider 查找它,例如:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
可以通过服务提供者机制提供可选编译器或工具。
例如,如果 com.vendor.VendorJavaCompiler
是 JavaCompiler
工具的提供者,则其 jar 文件应包含 META-INF/services/javax.tools.JavaCompiler
文件。此文件将包含单行:
com.vendor.VendorJavaCompiler
如果 jar 文件在类路径上,则可以使用以下代码查找 VendorJavaCompiler:
JavaCompiler compiler = ServiceLoader.load(JavaCompiler.class).iterator().next();