Пакет 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 | Фабрика для создания |
| Tool | Общий интерфейс для инструментов, которые можно вызвать из программы. |
| Класс | Описание |
|---|---|
| DiagnosticCollector<S> | Предоставляет простой способ сбора диагностики в списке. |
| ForwardingFileObject<F extends FileObject> | Перенаправляет вызовы заданному файлу-объекту. |
| ForwardingJavaFileManager<M extends JavaFileManager> | Перенаправляет вызовы заданному менеджеру файлов. |
| ForwardingJavaFileObject<F extends JavaFileObject> | Перенаправляет вызовы заданному файлу-объекту. |
| SimpleJavaFileObject | Предоставляет простые реализации для большинства методов в JavaFileObject. |
| ToolProvider | Предоставляет методы для поиска поставщиков инструментов, например, поставщиков компиляторов. |
| Перечисление | Описание |
|---|---|
| Diagnostic.Kind | Виды диагностики, например, ошибка или предупреждение. |
| DocumentationTool.Location | Расположения, специфичные для |
| 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