Пакет javax.tools
Предоставляет интерфейсы для инструментов, которые могут быть вызваны из программы, например, компиляторы.
См.: Описание
| Интерфейс | Описание |
|---|---|
| Diagnostic<S> | Интерфейс для диагностики от инструментов. |
| DiagnosticListener<S> | Интерфейс для получения диагностики от инструментов. |
| DocumentationTool | Интерфейс для вызова инструментов документации языка программирования Java™ из программ. |
| DocumentationTool.DocumentationTask | Интерфейс, представляющий будущее для задачи документирования. |
| FileObject | Абстракция файла для инструментов. |
| JavaCompiler | Интерфейс для вызова компиляторов языка программирования Java™ из программ. |
| JavaCompiler.CompilationTask | Интерфейс, представляющий будущее для задачи компиляции. |
| JavaFileManager | Управляющий файлами для инструментов, работающих с исходными и классными файлами языка программирования Java™. |
| JavaFileManager.Location | Интерфейс для расположений объектов файлов. |
| JavaFileObject | Абстракция файла для инструментов, работающих с исходными и классными файлами языка программирования Java™. |
| OptionChecker | Интерфейс для распознавания параметров. |
| StandardJavaFileManager | Управляющий файлами, основанный на java.io.File. |
| 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 | Стандартные расположения объектов файлов. |
Описание пакета javax.tools
Предоставляет интерфейсы для инструментов, которые могут быть вызваны из программы, например, компиляторы.
Эти интерфейсы и классы являются обязательными компонентами платформы Java™ Standard Edition (Java SE), но нет требования предоставлять любые инструменты, реализующие их.
За исключением явно разрешенных случаев, все методы в этом пакете могут генерировать исключение NullPointerException, если им передается null аргумент или если им передается список или коллекция, содержащая null элементы. Аналогично, ни один метод не может вернуть null если это явно не разрешено.
В этом пакете находится фреймворк компилятора языка программирования Java. Этот фреймворк позволяет клиентам фреймворка находить и запускать компиляторы из программ. Фреймворк также предоставляет интерфейсы поставщиков сервисов (SPI) для структурированного доступа к диагностике (DiagnosticListener), а также абстракцию файлов для переопределения доступа к файлам (JavaFileManager и JavaFileObject). См. JavaCompiler для получения более подробной информации об использовании SPI.
Нет требования к наличию компилятора во время выполнения. Однако, если предоставляется компилятор по умолчанию, он может быть найден с помощью ToolProvider, например:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
Возможно предоставить альтернативные компиляторы или инструменты через механизм поставщиков сервисов service provider mechanism.
Например, если 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
© 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.