Пакет javax.tools

Предоставляет интерфейсы для инструментов, которые можно вызвать из программы, например, компиляторы.

Эти интерфейсы и классы необходимы как часть Java™ Platform, Standard Edition (Java SE), но нет требования предоставлять какие-либо инструменты, реализующие их.

Если явно не разрешено, все методы в этом пакете могут выбросить исключение NullPointerException, если им будет передан null аргумент или если им будет передан список или коллекция, содержащая null элементы. Аналогично, ни один метод не может вернуть null , если явно не разрешено.

Этот пакет является домом для фреймворка компилятора языка программирования Java. Этот фреймворк позволяет клиентам фреймворка находить и запускать компиляторы из программ. Фреймворк также предоставляет интерфейсы поставщиков сервисов (SPI) для структурированного доступа к диагностике (DiagnosticListener), а также абстракцию файлов для переопределения доступа к файлам (JavaFileManager и JavaFileObject). См. JavaCompiler для получения дополнительной информации об использовании SPI.

Нет требования наличия компилятора во время выполнения. Однако, если предоставляется компилятор по умолчанию, его можно найти с помощью 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();

Since:
1.6
Интерфейс Описание
Diagnostic<S>

Интерфейс для диагностики от инструментов.

DiagnosticListener<S>

Интерфейс для получения диагностики от инструментов.

DocumentationTool

Интерфейс для вызова инструментов документирования языка программирования Java™ из программ.

DocumentationTool.DocumentationTask

Интерфейс, представляющий задачу документирования.

FileObject

Файловая абстракция для инструментов.

JavaCompiler

Интерфейс для вызова компиляторов языка программирования Java™ из программ.

JavaCompiler.CompilationTask

Интерфейс, представляющий задачу компиляции.

JavaFileManager

Менеджер файлов для инструментов, работающих с исходными и скомпилированными файлами языка программирования Java™.

JavaFileManager.Location

Интерфейс для расположений файлов-объектов.

JavaFileObject

Файловая абстракция для инструментов, работающих с исходными и скомпилированными файлами языка программирования Java™.

OptionChecker

Интерфейс для распознавания параметров.

StandardJavaFileManager

Менеджер файлов, основанный на java.io.File и java.nio.file.Path.

StandardJavaFileManager.PathFactory

Фабрика для создания Path объектов из строк.

Tool

Общий интерфейс для инструментов, которые можно вызвать из программы.

Класс Описание
DiagnosticCollector<S>

Предоставляет простой способ сбора диагностики в списке.

ForwardingFileObject<F extends FileObject>

Перенаправляет вызовы заданному файлу-объекту.

ForwardingJavaFileManager<M extends JavaFileManager>

Перенаправляет вызовы заданному менеджеру файлов.

ForwardingJavaFileObject<F extends JavaFileObject>

Перенаправляет вызовы заданному файлу-объекту.

SimpleJavaFileObject

Предоставляет простые реализации для большинства методов в JavaFileObject.

ToolProvider

Предоставляет методы для поиска поставщиков инструментов, например, поставщиков компиляторов.

Перечисление Описание
Diagnostic.Kind

Виды диагностики, например, ошибка или предупреждение.

DocumentationTool.Location

Расположения, специфичные для DocumentationTool.

JavaFileObject.Kind

Виды JavaFileObject.

StandardLocation

Стандартные расположения файлов-объектов.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.compiler/javax/tools/package-summary.html

Spec-Zone .ru
спецификации, руководства, описания, API