Интерфейс ToolProvider
public interface ToolProvider
Поставщики инструментов обычно обнаруживаются с помощью механизма загрузки поставщиков служб, определённого в ServiceLoader. Каждый поставщик должен предоставить имя и метод для запуска экземпляра соответствующего инструмента. При запуске инструменту передаётся массив строковых аргументов и пара потоков: один для обычного (или ожидаемого) вывода, другой — для сообщений о возможных ошибках. Интерпретация строковых аргументов обычно определяется каждым поставщиком инструмента отдельно, но, как правило, соответствует аргументам, которые можно было бы передать инструменту при его вызове из командной строки.
- Начиная с:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default Optional |
description() |
Возвращает краткое описание инструмента или пустое значение Optional, если описание недоступно. |
static Optional |
findFirst |
Возвращает первый экземпляр ToolProvider с указанным именем, загруженный с помощью ServiceLoader системным загрузчиком классов. |
String |
name() |
Возвращает имя этого поставщика инструментов. |
default int |
run |
Запускает экземпляр инструмента и возвращает ноль в случае успешного выполнения. |
int |
run |
Запускает экземпляр инструмента и возвращает ноль в случае успешного выполнения. |
Подробное описание методов
name
String name()
- Примечание API:
- Рекомендуется использовать имя, совпадающее с именем, применяемым в командной строке, например "javac", "jar", "jlink".
- Возвращает:
- имя этого поставщика инструментов
description
default Optional<String> description()
Optional, если описание недоступно.- Примечание API:
- Рекомендуется, чтобы описание умещалось в одну строку, чтобы можно было создавать краткие обзоры, например следующий:
jar Create, manipulate, and extract an archive of classes and resources. javac Read Java declarations and compile them into class files. jlink Assemble a set of modules (...) into a custom runtime image. - Требования к реализации:
- Эта реализация возвращает пустое значение
Optional. - Возвращает:
- краткое описание инструмента или пустое значение
Optional, если описание недоступно - Начиная с:
- 19
run
int run(PrintWriter out, PrintWriter err, String... args)
- Примечание API:
- Интерпретация аргументов зависит от конкретного инструмента.
- Параметры:
-
out— поток, в который следует записывать «ожидаемый» вывод -
err— поток, в который следует записывать сообщения об ошибках -
args— аргументы командной строки для инструмента - Возвращает:
- результат выполнения инструмента. Возвращаемое значение 0 означает, что инструмент не обнаружил ошибок; любое другое значение указывает на то, что во время выполнения произошла как минимум одна ошибка.
- Выбрасывает:
-
NullPointerException— если какой-либо из аргументов равенnullили в массивеargsимеются значенияnull
run
default int run(PrintStream out, PrintStream err, String... args)
- Примечание API:
- Интерпретация аргументов зависит от конкретного инструмента.
- Примечание по реализации:
- Эта реализация оборачивает потоки
outиerrв объектыPrintWriter, а затем вызываетrun(PrintWriter, PrintWriter, String[]). - Параметры:
-
out— поток, в который следует записывать «ожидаемый» вывод -
err— поток, в который следует записывать сообщения об ошибках -
args— аргументы командной строки для инструмента - Возвращает:
- результат выполнения инструмента. Возвращаемое значение 0 означает, что инструмент не обнаружил ошибок; любое другое значение указывает на то, что во время выполнения произошла как минимум одна ошибка.
- Выбрасывает:
-
NullPointerException— если какой-либо из аргументов равенnullили в массивеargsимеются значенияnull
findFirst
static Optional<ToolProvider> findFirst(String name)
ToolProvider с указанным именем, загруженный с помощью ServiceLoader системным загрузчиком классов.- Параметры:
-
name— имя требуемого поставщика инструментов - Возвращает:
Optional<ToolProvider>первого найденного экземпляра- Выбрасывает:
-
NullPointerException— еслиnameравенnull
© 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.base/java/util/spi/ToolProvider.html