public interface JavaShellToolBuilder
用于配置和运行Java shell工具实例的接口。可以使用静态
builder()
方法创建构建器的实例。此构建器可以选择性地通过配置方法进行配置。所有配置方法都会返回构建器实例,以便在链式初始化中使用。如果不调用任何配置方法,则所有配置方法都有明智的默认值。在调用零个或多个配置方法后,可以通过调用run(java.lang.String...)
来启动工具。
- 自 JDK 9 起:
- 9
-
Method Summary
Modifier and TypeMethodDescriptionstatic JavaShellToolBuilder
builder()
创建一个用于启动JDK jshell工具的构建器。设置环境变量的来源。err
(PrintStream error) 设置错误通道。err
(PrintStream cmdErr, PrintStream userErr) 设置错误通道。in
(InputStream cmdIn, InputStream userIn) 设置输入通道。default JavaShellToolBuilder
interactiveTerminal
(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
- 意外的致命异常
-