Пакет javax.tools
Эти интерфейсы и классы входят в состав Java Platform, Standard Edition (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();
- С версии:
- 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, 2025, 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/25/docs/api/java.compiler/javax/tools/package-summary.html