Spec-Zone.ru › OpenJDK 24

Интерфейс ToolProvider

public interface ToolProvider
Интерфейс для командно-строчных инструментов, позволяющий вызывать их без необходимости запуска новой виртуальной машины.

Поставщики инструментов обычно находятся с помощью механизма загрузки поставщиков услуг, определенного в ServiceLoader. Каждый поставщик должен предоставить имя и метод для запуска экземпляра соответствующего инструмента. При запуске инструмента ему будет передан массив строковых аргументов и пара потоков: один для стандартного (или ожидаемого) вывода, а другой — для сообщения об ошибках, которые могут возникнуть. Интерпретация строковых аргументов обычно определяется каждым отдельным поставщиком инструментов, но, как правило, соответствует аргументам, которые могут быть переданы инструменту при вызове инструмента из командной строки.

Since:
9

Краткое описание методов

Модификатор и тип Метод Описание
default Optional<String> description()
Возвращает краткое описание инструмента или пустую Optional, если описание недоступно.
static Optional<ToolProvider> findFirst(String name)
Возвращает первый экземпляр ToolProvider с заданным именем, загруженный с помощью ServiceLoader с использованием системного загрузчика классов.
String name()
Возвращает имя этого поставщика инструментов.
default int run(PrintStream out, PrintStream err, String... args)
Запускает экземпляр инструмента, возвращая ноль для успешного выполнения.
int run(PrintWriter out, PrintWriter err, String... args)
Запускает экземпляр инструмента, возвращая ноль для успешного выполнения.

Подробное описание методов

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API