javax.tools

接口
异常
为能够从程序(例如,编译器)中调用的工具提供接口。

请参见:
          描述

接口摘要
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 文件对象的标准位置。
 

软件包 javax.tools 的描述

为能够从程序(例如,编译器)中调用的工具提供接口。

要求这些接口和类作为 Java™Platform, Standard Edition (Java SE) 的一部分,但是不要求提供任何实现它们的工具。

除非明确允许,否则只要给定 null 参数或给定包含 null 元素的列表或集合,此包中的所有方法都将抛出 NullPointerException。类似地,除非明确允许,否则所有方法都不可以返回 null

此包是 Java 编程语言编译器框架的主要部分。此框架允许框架的客户端查找并运行程序中的编译器。该框架还为结构化访问诊断(DiagnosticListener)提供服务提供者接口(SPI),为重写文件访问提供文件抽象(JavaFileManagerJavaFileObject)。有关使用 SPI 的详细信息,请参阅 JavaCompiler

运行时不需要编译器。然而,如果提供了默认编译器,则可以使用 ToolProvider 查找它,例如:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

可以通过服务提供者机制提供可选编译器或工具。

例如,如果 com.vendor.VendorJavaCompilerJavaCompiler 工具的提供者,则其 jar 文件应包含 META-INF/services/javax.tools.JavaCompiler 文件。此文件将包含单行:

com.vendor.VendorJavaCompiler

如果 jar 文件在类路径上,则可以使用以下代码查找 VendorJavaCompiler:

JavaCompiler compiler = ServiceLoader.load(JavaCompiler.class).iterator().next();

从以下版本开始:
1.6