public interface JavaShellToolBuilder
用于配置和运行Java shell工具实例的接口。可以使用静态
builder()方法创建构建器的实例。此构建器可以选择性地通过配置方法进行配置。所有配置方法都会返回构建器实例,以便在链式初始化中使用。如果不调用任何配置方法,则所有配置方法都有明智的默认值。在调用零个或多个配置方法后,可以通过调用run(java.lang.String...)来启动工具。
- 自 JDK 9 起:
- 9
-
Method Summary
Modifier and TypeMethodDescriptionstatic JavaShellToolBuilderbuilder()创建一个用于启动JDK jshell工具的构建器。设置环境变量的来源。err(PrintStream error) 设置错误通道。err(PrintStream cmdErr, PrintStream userErr) 设置错误通道。in(InputStream cmdIn, InputStream userIn) 设置输入通道。default JavaShellToolBuilderinteractiveTerminal(boolean terminal) 设置为true以指定输入和输出连接到可以解释ANSI转义代码的交互式终端。设置区域设置。out(PrintStream output) 设置输出通道。out(PrintStream cmdOut, PrintStream console, PrintStream userOut) 设置输出通道。persistence(Map<String, String> prefsMap) 设置用于持久信息的存储机制,包括输入历史记录和保留设置。persistence(Preferences prefs) 设置用于持久信息的存储机制,包括输入历史记录和保留设置。promptCapture(boolean capture) 设置以启用命令捕获提示覆盖。void根据此接口中的其他方法配置,运行Java shell工具的实例。default int根据此接口中的其他方法配置,运行Java shell工具的实例。
-
Method Details
-
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
设置输出通道。- 实现要求:
-
如果未调用任何
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
设置错误通道。- 实现要求:
-
如果未调用任何
err方法,则行为应等同于调用err(System.err, System.err, System.err)。 - 参数:
-
cmdErr- 工具启动和致命错误的目的地 -
userErr- 用户代码错误输出的目的地。例如,用户片段System.err.println("Oops")在执行时Oops会发送到userErr。 - 返回:
-
JavaShellToolBuilder实例
-
persistence
设置用于持久信息的存储机制,包括输入历史记录和保留设置。- 实现要求:
-
如果未调用任何
persistence方法,则行为应使用工具的标准持久性机制。 - 参数:
-
prefs- 用于检索和存储持久信息的Preferences实例 - 返回:
-
JavaShellToolBuilder实例
-
persistence
设置用于持久信息的存储机制,包括输入历史记录和保留设置。- 实现要求:
-
如果未调用任何
persistence方法,则行为应使用工具的标准持久性机制。 - 参数:
-
prefsMap- 用于检索和存储持久信息的Map实例 - 返回:
-
JavaShellToolBuilder实例
-
env
设置环境变量的来源。- 实现要求:
-
如果未调用此方法,则行为应等同于调用
env(System.getenv())。 - 参数:
-
vars- 环境变量名称到值的映射 - 返回:
-
JavaShellToolBuilder实例
-
locale
设置区域设置。- 实现要求:
-
如果未调用此方法,则行为应等同于调用
locale(Locale.getDefault())。 - 参数:
-
locale- 区域设置 - 返回:
-
JavaShellToolBuilder实例
-
promptCapture
设置以启用命令捕获提示覆盖。- 实现要求:
-
如果未调用此方法,则行为应等同于调用
promptCapture(false)。 - 参数:
-
capture- 如果为true,基本提示是ENQ字符,继续提示是ACK字符。如果为false,则提示与设置或用户/set命令设置的一样。 - 返回:
-
JavaShellToolBuilder实例
-
interactiveTerminal
设置为true以指定输入和输出连接到可以解释ANSI转义代码的交互式终端。假定发送到输出流的字符由终端解释并显示给用户,发送到输出的字符的确切顺序和性质是未指定的。设置为false以指定传统简单行为,其输出可以被自动工具解析。当此Java Shell的输入流为System.in时,此值将被忽略,并且行为类似于在此方法中指定true,但更接近于连接到System.in的特定终端。- 实现要求:
-
如果未调用此方法,则行为应等同于调用
interactiveTerminal(false)。此方法的默认实现返回this。 - 参数:
-
terminal- 如果为true,假定可以解释ANSI转义代码的终端解释输出。如果为false,则选择简单输出。 - 返回:
-
JavaShellToolBuilder实例 - 自 JDK 17 起:
- 17
-
run
根据此接口中的其他方法配置,运行Java shell工具的实例。此调用不具有破坏性,可以从配置好的构建器中多次调用此方法。忽略Java shell工具的退出代码。- 参数:
-
arguments- 命令行参数(包括选项),如果有的话 - 抛出:
-
Exception- 意外的致命异常
-
start
根据此接口中的其他方法配置,运行Java shell工具的实例。此调用不具有破坏性,可以从配置好的构建器中多次调用此方法。- 实现要求:
- 默认实现始终返回零。此接口的实现应覆盖此方法,返回退出状态。
- 参数:
-
arguments- 命令行参数(包括选项),如果有的话 - 返回:
- 工具明确退出时的退出状态(如果有),否则成功为0或失败为1
- 抛出:
-
Exception- 意外的致命异常
-