Пакет 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, 2021, 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/17/docs/api/java.compiler/javax/tools/package-summary.html