-
public interface ToolProvider
一个用于命令行工具的界面,用于提供一种无需启动新VM即可调用的方法。工具提供者通常使用由
ServiceLoader
定义的服务提供商加载工具。 每个提供者必须提供一个名称和一个运行相应工具实例的方法。 当一个工具运行时,它将提供一个字符串参数数组和一对流:一个用于正常(或预期)输出,另一个用于报告可能发生的任何错误。 字符串参数的解释通常由每个单独的工具提供程序定义,但通常对应于在从命令行调用该工具时可以提供给该工具的参数。- 从以下版本开始:
- 9
-
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 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
流中的err封装 ,然后调用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
-
-