Пакет javax.tools
Эти интерфейсы и классы являются обязательными для платформы Java SE, но нет требования предоставлять какие-либо инструменты, реализующие их.
Если явно не разрешено, все методы в этом пакете могут выбросить исключение NullPointerException, если получат null аргумент или если получат список или коллекцию, содержащую null элементы. Аналогично, ни один метод не может вернуть 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();
- Since:
- 1.6
| Класс | Описание |
|---|---|
| Diagnostic<S> | Интерфейс для диагностики от инструментов. |
| Diagnostic.Kind | Виды диагностики, например, ошибка или предупреждение. |
| DiagnosticCollector<S> | Обеспечивает лёгкий способ сбора диагностики в списке. |
| DiagnosticListener<S> | Интерфейс для получения диагностики от инструментов. |
| DocumentationTool | Интерфейс для вызова инструментов документирования языка программирования Java из программ. |
| DocumentationTool.DocumentationTask | Интерфейс, представляющий задачу документирования в будущем. |
| DocumentationTool.Location | Местоположения, специфичные для DocumentationTool. |
| FileObject | Файловая абстракция для инструментов. |
| ForwardingFileObject<F extends FileObject> | Перенаправляет вызовы заданному объекту файла. |
| ForwardingJavaFileManager<M extends JavaFileManager> | Перенаправляет вызовы заданному менеджеру файлов. |
| ForwardingJavaFileObject<F extends JavaFileObject> | Перенаправляет вызовы заданному объекту файла. |
| JavaCompiler | Интерфейс для вызова компиляторов языка программирования Java из программ. |
| JavaCompiler.CompilationTask | Интерфейс, представляющий задачу компиляции в будущем. |
| JavaFileManager | Менеджер файлов для инструментов, работающих с исходными и скомпилированными файлами языка программирования Java. |
| JavaFileManager.Location | Интерфейс для местоположений объектов файлов. |
| JavaFileObject | Файловая абстракция для инструментов, работающих с исходными и скомпилированными файлами языка программирования Java. |
| JavaFileObject.Kind | Типы JavaFileObject. |
| OptionChecker | Интерфейс для распознавания параметров. |
| SimpleJavaFileObject | Предоставляет простые реализации большинства методов в JavaFileObject. |
| StandardJavaFileManager | Менеджер файлов, основанный на java.io.File и java.nio.file.Path. |
| StandardJavaFileManager.PathFactory | Фабрика для создания Path объектов из строк. |
| StandardLocation | Стандартные местоположения объектов файлов. |
| Tool | Общий интерфейс для инструментов, которые можно вызывать из программы. |
| ToolProvider | Предоставляет методы для поиска поставщиков инструментов, например, поставщиков компиляторов. |
© 1993, 2023, 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/21/docs/api/java.compiler/javax/tools/package-summary.html