Интерфейс ToolProvider

public interface ToolProvider

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

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

С тех пор:
9

Методы

Модификатор и тип Метод Описание
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".
Возвращает:
имя этого поставщика инструмента

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

© 1993, 2020, 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/11/docs/api/java.base/java/util/spi/ToolProvider.html

Spec-Zone .ru
спецификации, руководства, описания, API