详细描述
为能够从程式(例如,编译器)中调用的工具提供接口。
要求这些接口和类作为 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();
接口摘要
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 | 档案对象的标準位置。 |
从以下版本开始:1.6