Spec-Zone.ru › OpenJDK 25

Интерфейс ToolProvider

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

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

Начиная с:
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:
Рекомендуется использовать имя, совпадающее с именем, применяемым в командной строке, например "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

Сообщить об ошибке или предложить улучшение
Дополнительные сведения об API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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