模块  java.base
软件包  java.util.spi

Interface ToolProvider


  • public interface ToolProvider
    命令行工具的接口,用于提供在不必启动新VM的情况下调用的方法。

    工具提供者通常使用由ServiceLoader定义的服务提供者加载工具来定位 每个提供程序必须提供名称和方法来运行相应工具的实例。 当一个工具运行时,它将提供一个字符串参数数组和一对流:一个用于正常(或预期)输出,另一个用于报告可能发生的任何错误。 字符串参数的解释通常由每个单独的工具提供程序定义,但通常对应于从命令行调用工具时可以提供给工具的参数。

    从以下版本开始:
    9
    • 方法详细信息

      • 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:
        此实现将outerr流包装在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 - 如果 namenull