-
public interface ToolProvider
命令行工具的接口,用于提供在不必启动新VM的情况下调用的方法。工具提供者通常使用由
ServiceLoader
定义的服务提供者加载工具来定位 。 每个提供程序必须提供名称和方法来运行相应工具的实例。 当一个工具运行时,它将提供一个字符串参数数组和一对流:一个用于正常(或预期)输出,另一个用于报告可能发生的任何错误。 字符串参数的解释通常由每个单独的工具提供程序定义,但通常对应于从命令行调用工具时可以提供给工具的参数。- 从以下版本开始:
- 9
-
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 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”。
- 结果
- 此工具提供程序的名称
-
run
int run(PrintWriter out, PrintWriter err, String... args)
运行该工具的实例,为成功运行返回零。 任何非零返回值都表示执行期间特定于工具的错误。 应提供两个流,用于“预期”输出,以及任何错误消息。 如果不必区分输出,则可以将相同的流用于两者。- API Note:
- 参数的解释将特定于每个工具。
- 参数
-
out
- 应写入“预期”输出的流 -
err
- 应写入任何错误消息的流 -
args
- 该工具的命令行参数 - 结果
- 执行工具的结果。 返回值为0表示该工具未遇到任何错误; 任何其他值表示执行期间至少发生一次错误。
- 异常
-
NullPointerException
- 如果任何参数为null
,或者args
数组中有任何null
值
-
run
default int run(PrintStream out, PrintStream err, String... args)
运行该工具的实例,为成功运行返回零。 任何非零返回值都表示执行期间特定于工具的错误。 应提供两个流,用于“预期”输出,以及任何错误消息。 如果不必区分输出,则可以将相同的流用于两者。- API Note:
- 参数的解释将特定于每个工具。
- Implementation Note:
-
此实现将
out
和err
流包装在PrintWriter
s内,然后调用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
-
-