Module  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流中的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 - 如果 namenull