包 javax.tools
包javax.tools
为可以从程序中调用的工具提供接口,例如编译器。
这些接口和类是 Java 平台标准版 (Java SE) 的一部分,但不需要提供任何实现它们的工具。
除非明确允许,否则如果给定一个 null
参数或给定一个包含 null
元素的 列表或集合,此包中的所有方法都可能抛出 NullPointerException
。同样,除非明确允许,否则任何方法都不能返回 null
。
这个包是 Java 编程语言编译器框架的所在地。该框架允许框架的客户端从程序中定位和运行编译器。该框架还提供用于结构化访问诊断的服务提供者接口 (SPI) (DiagnosticListener
) 以及用于覆盖文件访问的文件抽象(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();
- 自从:
- 1.6
-
类描述Diagnostic <S>工具诊断接口。各种诊断,例如,错误或警告。提供一种在列表中收集诊断的简单方法。用于从工具接收诊断信息的接口。从程序调用 Java 编程语言文档工具的接口。代表文档任务未来的接口。特定于
DocumentationTool
的位置。工具的文件抽象。ForwardingFileObject <F 扩展 FileObject >将调用转发给给定的文件对象。将调用转发给给定的文件管理器。将调用转发给给定的文件对象。从程序中调用 Java 编程语言编译器的接口。代表编译任务未来的接口。用于在 Java 编程语言源文件和类文件上运行的工具的文件管理器。文件对象位置的接口。在 Java 编程语言源文件和类文件上运行的工具的文件抽象。JavaFileObject 的种类。用于识别选项的界面。为 JavaFileObject 中的大多数方法提供简单的实现。基于java.io.File
和java.nio.file.Path
的文件管理器。从字符串创建Path
对象的工厂。文件对象的标准位置。可从程序中调用的工具的通用接口。提供定位工具提供者的方法,例如,编译器的提供者。