Module jdk.jshell
Package jdk.jshell.tool

Interface JavaShellToolBuilder


public interface JavaShellToolBuilder
用于配置和运行Java shell工具实例的接口。可以使用静态builder()方法创建构建器的实例。此构建器可以选择性地通过配置方法进行配置。所有配置方法都会返回构建器实例,以便在链式初始化中使用。如果不调用任何配置方法,则所有配置方法都有明智的默认值。在调用零个或多个配置方法后,可以通过调用run(java.lang.String...)来启动工具。
自 JDK 9 起:
9
  • Method Details

    • builder

      static JavaShellToolBuilder builder()
      创建一个用于启动JDK jshell工具的构建器。
      返回:
      一个可用于配置和启动jshell工具的构建器
    • in

      设置输入通道。
      实现要求:
      如果未调用此方法,则行为应等同于调用in(System.in, null)
      参数:
      cmdIn - 命令输入的来源
      userIn - 用于运行用户代码的输入源,或者null以从cmdIn中提取用户输入
      返回:
      JavaShellToolBuilder实例
    • out

      设置输出通道。与out(output, output, output)相同。
      实现要求:
      如果未调用任何out方法,则行为应等同于调用out(System.out)
      参数:
      output - 命令反馈、控制台交互和用户代码输出的目的地
      返回:
      JavaShellToolBuilder实例
    • out

      JavaShellToolBuilder out(PrintStream cmdOut, PrintStream console, PrintStream userOut)
      设置输出通道。
      实现要求:
      如果未调用任何out方法,则行为应等同于调用out(System.out, System.out, System.out)
      参数:
      cmdOut - 包括用户错误消息的命令反馈目的地
      console - 控制台交互的目的地
      userOut - 用户代码输出的目的地。例如,用户片段System.out.println("Hello")在执行时Hello会发送到userOut。
      返回:
      JavaShellToolBuilder实例
    • err

      设置错误通道。与err(error, error)相同。
      实现要求:
      如果未调用任何err方法,则行为应等同于调用err(System.err)
      参数:
      error - 工具错误和用户代码错误的目的地
      返回:
      JavaShellToolBuilder实例
    • err

      JavaShellToolBuilder err(PrintStream cmdErr, PrintStream userErr)
      设置错误通道。
      实现要求:
      如果未调用任何err方法,则行为应等同于调用err(System.err, System.err, System.err)
      参数:
      cmdErr - 工具启动和致命错误的目的地
      userErr - 用户代码错误输出的目的地。例如,用户片段System.err.println("Oops")在执行时Oops会发送到userErr。
      返回:
      JavaShellToolBuilder实例
    • persistence

      JavaShellToolBuilder persistence(Preferences prefs)
      设置用于持久信息的存储机制,包括输入历史记录和保留设置。
      实现要求:
      如果未调用任何persistence方法,则行为应使用工具的标准持久性机制。
      参数:
      prefs - 用于检索和存储持久信息的Preferences实例
      返回:
      JavaShellToolBuilder实例
    • persistence

      JavaShellToolBuilder persistence(Map<String,String> prefsMap)
      设置用于持久信息的存储机制,包括输入历史记录和保留设置。
      实现要求:
      如果未调用任何persistence方法,则行为应使用工具的标准持久性机制。
      参数:
      prefsMap - 用于检索和存储持久信息的Map实例
      返回:
      JavaShellToolBuilder实例
    • env

      设置环境变量的来源。
      实现要求:
      如果未调用此方法,则行为应等同于调用env(System.getenv())
      参数:
      vars - 环境变量名称到值的映射
      返回:
      JavaShellToolBuilder实例
    • locale

      JavaShellToolBuilder locale(Locale locale)
      设置区域设置。
      实现要求:
      如果未调用此方法,则行为应等同于调用locale(Locale.getDefault())
      参数:
      locale - 区域设置
      返回:
      JavaShellToolBuilder实例
    • promptCapture

      JavaShellToolBuilder promptCapture(boolean capture)
      设置以启用命令捕获提示覆盖。
      实现要求:
      如果未调用此方法,则行为应等同于调用promptCapture(false)
      参数:
      capture - 如果为true,基本提示是ENQ字符,继续提示是ACK字符。如果为false,则提示与设置或用户/set命令设置的一样。
      返回:
      JavaShellToolBuilder实例
    • interactiveTerminal

      default JavaShellToolBuilder interactiveTerminal(boolean terminal)
      设置为true以指定输入和输出连接到可以解释ANSI转义代码的交互式终端。假定发送到输出流的字符由终端解释并显示给用户,发送到输出的字符的确切顺序和性质是未指定的。设置为false以指定传统简单行为,其输出可以被自动工具解析。当此Java Shell的输入流为System.in时,此值将被忽略,并且行为类似于在此方法中指定true,但更接近于连接到System.in的特定终端。
      实现要求:
      如果未调用此方法,则行为应等同于调用interactiveTerminal(false)。此方法的默认实现返回this
      参数:
      terminal - 如果为true,假定可以解释ANSI转义代码的终端解释输出。如果为false,则选择简单输出。
      返回:
      JavaShellToolBuilder实例
      自 JDK 17 起:
      17
    • run

      void run(String... arguments) throws Exception
      根据此接口中的其他方法配置,运行Java shell工具的实例。此调用不具有破坏性,可以从配置好的构建器中多次调用此方法。忽略Java shell工具的退出代码。
      参数:
      arguments - 命令行参数(包括选项),如果有的话
      抛出:
      Exception - 意外的致命异常
    • start

      default int start(String... arguments) throws Exception
      根据此接口中的其他方法配置,运行Java shell工具的实例。此调用不具有破坏性,可以从配置好的构建器中多次调用此方法。
      实现要求:
      默认实现始终返回零。此接口的实现应覆盖此方法,返回退出状态。
      参数:
      arguments - 命令行参数(包括选项),如果有的话
      返回:
      工具明确退出时的退出状态(如果有),否则成功为0或失败为1
      抛出:
      Exception - 意外的致命异常