Интерфейс 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, 2023, 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/21/docs/api/java.base/java/util/spi/ToolProvider.html