Spec-Zone.ru › OpenJDK 21

Интерфейс 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, 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

Spec-Zone.ru

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