Интерфейс ToolProvider
public interface ToolProvider
Поставщики инструментов обычно находятся с помощью механизма загрузки поставщиков услуг, определенного в ServiceLoader. Каждый поставщик должен предоставить имя и метод для запуска экземпляра соответствующего инструмента. При запуске инструмента ему будет передан массив строковых аргументов и пара потоков: один для стандартного (или ожидаемого) вывода, а другой — для сообщения об ошибках, которые могут возникнуть. Интерпретация строковых аргументов обычно определяется каждым отдельным поставщиком инструментов, но, как правило, соответствует аргументам, которые могут быть переданы инструменту при вызове инструмента из командной строки.
- Since:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default Optional |
description() |
Возвращает краткое описание инструмента или пустую Optional, если описание недоступно. |
static Optional |
findFirst |
Возвращает первый экземпляр ToolProvider с заданным именем, загруженный с помощью ServiceLoader с использованием системного загрузчика классов. |
String |
name() |
Возвращает имя этого поставщика инструментов. |
default int |
run |
Запускает экземпляр инструмента, возвращая ноль для успешного выполнения. |
int |
run |
Запускает экземпляр инструмента, возвращая ноль для успешного выполнения. |
Подробное описание методов
name
String name()
- API Note:
- Рекомендуется, чтобы имя совпадало с именем, используемым в командной строке: например, "javac", "jar", "jlink".
- Returns:
- имя этого поставщика инструментов
description
default Optional<String> description()
Optional, если описание недоступно.- API Note:
- Рекомендуется, чтобы описание поместилось в одну строку для создания кратких обзоров, например:
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. - Returns:
- краткое описание инструмента или пустую
Optional, если описание недоступно - Since:
- 19
run
int run(PrintWriter out, PrintWriter err, String... args)
- API Note:
- Интерпретация аргументов будет специфичной для каждого инструмента.
- Parameters:
-
out- поток, в который должен быть записан «ожидаемый» вывод -
err- поток, в который должны быть записаны любые сообщения об ошибках -
args- аргументы командной строки для инструмента - Returns:
- результат выполнения инструмента. Значение 0 означает, что инструмент не столкнулся с ошибками; любое другое значение указывает на то, что во время выполнения произошла хотя бы одна ошибка.
- Throws:
-
NullPointerException- если любой из аргументов являетсяnull, или если в массивеargsесть какие-либо значенияnull
run
default int run(PrintStream out, PrintStream err, String... args)
- API Note:
- Интерпретация аргументов будет специфичной для каждого инструмента.
- Implementation Note:
- Эта реализация оборачивает потоки
outиerrвPrintWriterи затем вызываетrun(PrintWriter, PrintWriter, String[]). - Parameters:
-
out- поток, в который должен быть записан «ожидаемый» вывод -
err- поток, в который должны быть записаны любые сообщения об ошибках -
args- аргументы командной строки для инструмента - Returns:
- результат выполнения инструмента. Значение 0 означает, что инструмент не столкнулся с ошибками; любое другое значение указывает на то, что во время выполнения произошла хотя бы одна ошибка.
- Throws:
-
NullPointerException- если любой из аргументов являетсяnull, или если в массивеargsесть какие-либо значенияnull
findFirst
static Optional<ToolProvider> findFirst(String name)
ToolProvider с заданным именем, загруженный с помощью ServiceLoader с использованием системного загрузчика классов.- Parameters:
-
name- имя желаемого поставщика инструментов - Returns:
- экземпляр
Optional<ToolProvider>первого найденного экземпляра - Throws:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/spi/ToolProvider.html