模块 java.base

接口 ToolProvider


public interface ToolProvider
命令行工具的接口,提供一种无需启动新 VM 即可调用的方法。

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

自从:
9
  • 方法详情

    • name

      String  name()
      返回此工具提供者的名称。
      API 注意:
      建议名称与命令行中使用的名称相同:例如,“javac”、“jar”、“jlink”。
      返回:
      此工具提供者的名称
    • description

      default Optional <String > description()
      返回工具的简短描述,如果没有可用描述,则返回空的 Optional
      API 注意:
      建议将描述放在一行中,以便创建简明的概述,如下所示:
      
       jar
        Create, manipulate, and extract an archive of classes and resources.
       javac
        Read Java declarations and compile them into class files.
       jlink
        Assemble a set of modules (...) into a custom runtime image.
        
       
      实现要求:
      此实现返回一个空的 Optional
      返回:
      工具的简短描述,如果没有可用的描述,则为空Optional
      自从:
      19
    • 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 注意:
      参数的解释将特定于每个工具。
      实现注意事项:
      此实现将 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