- java.lang.Object
-
- jdk.jshell.JShell.Builder
-
- Enclosing class:
- JShell
public static class JShell.Builder extends Object
Builder为JShell
实例。 使用JShell
的setter方法创建JShell
的自定义实例。 在零个或多个之后,使用build()
方法创建一个JShell
实例。 这些都可以链接。 例如,设置远程输出和错误流:JShell myShell = JShell.builder() .out(myOutStream) .err(myErrStream) .build();
JShell.builder().build()
或快捷等效的JShell.create()
。
-
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 JShell
build()
构建一个JShell状态引擎。JShell.Builder
compilerOptions(String... options)
添加编译器选项。JShell.Builder
err(PrintStream err)
设置运行评估的错误输出(它是System.err
)。JShell.Builder
executionEngine(String executionControlSpec)
设置要执行的自定义引擎。JShell.Builder
executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
设置要执行的自定义引擎。JShell.Builder
fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)
配置要编译和源分析使用的FileManager
。JShell.Builder
idGenerator(BiFunction<Snippet,Integer,String> generator)
设置代码段识别名称的生成器。JShell.Builder
in(InputStream in)
设置运行评估的输入(它是System.in
)。JShell.Builder
out(PrintStream out)
设置运行评估的输出(它是System.out
)。JShell.Builder
remoteVMOptions(String... options)
设置启动VM的其他VM选项。JShell.Builder
tempVariableNameGenerator(Supplier<String> generator)
设置Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
的VarSnippet
的临时变量名称生成器。
-
-
-
方法详细信息
-
in
public JShell.Builder in(InputStream in)
设置运行评估的输入(它是System.in
)。 注意:使用System.in
作为代码段或其他用户输入的应用程序不能使用System.in
作为远程进程的输入流。所述
read
所述的方法InputStream
可以抛出InterruptedIOException
以信号通知用户取消了输入。 当前正在运行的代码段将自动stopped
。如果没有设置,默认是提供一个空的输入流 -
new ByteArrayInputStream(new byte[0])
。- 参数
-
in
-的InputStream
能够被引向System.in
在远程执行的过程 - 结果
-
Builder
实例(用于链接初始化)
-
out
public JShell.Builder out(PrintStream out)
设置运行评估的输出(它是System.out
)。 控制过程和远程进程可共享System.out
。默认值(如果未设置)为
System.out
。- 参数
-
out
-PrintStream
要在远程执行过程中引导到System.out
- 结果
-
Builder
实例(用于链接初始化)
-
err
public JShell.Builder err(PrintStream err)
设置运行评估的错误输出(它是System.err
)。 控制过程和远程进程可共享System.err
。默认值(如果未设置)为
System.err
。- 参数
-
err
-PrintStream
要在远程执行过程中引导到System.err
- 结果
-
Builder
实例(用于链接初始化)
-
tempVariableNameGenerator
public JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
设置VarSnippet
的Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
的临时变量名称的生成器。不要使用此方法,除非您明确需要它。
该生成器将用于新创建的VarSnippet实例。 使用
PersistentSnippet.name()
查询变量的名称。回调是在处理代码段时发送的,JShell状态不稳定。
JShell
实例上的任何电话都不能从回调中进行。生成的名称在活动片段中必须是唯一的。
默认行为(如果未设置或
generator
为空)将生成名称作为具有前缀美元符号(“$”)的序号。- 参数
-
generator
-Supplier
生成临时变量名字符串或null
- 结果
-
Builder
实例(用于链接初始化)
-
idGenerator
public JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
设置代码段识别名称的生成器。不要使用此方法,除非您明确需要它。
生成器将用于新创建的Snippet实例。 所述识别名称(ID)与访问
Snippet.id()
,并且可以在可见StackTraceElement.getFileName()
为EvalException
和UnresolvedReferenceException
。发生器的输入是
Snippet
和整数。 两个Snippets的整数将相同,这两个Snippets会覆盖另一个,但是其他代码是唯一的。在处理代码段期间发送回调,代码段和状态作为一个整体不稳定。 不应该调用更改系统状态(包括Snippet状态)。 查询代码片段除
Snippet.id()
以外。JShell
实例的呼叫可能不能从回调发送,除非是status(Snippet)
。默认行为(如果未设置或
generator
为空)将生成转换为字符串的整数的id。- 参数
-
generator
-在BiFunction
生成ID字符串或null
- 结果
-
Builder
实例(用于链接初始化)
-
remoteVMOptions
public JShell.Builder remoteVMOptions(String... options)
设置启动VM的其他VM选项。- 参数
-
options
- 远程VM的选项 - 结果
-
Builder
实例(用于链接初始化)
-
compilerOptions
public JShell.Builder compilerOptions(String... options)
添加编译器选项。 这些附加选项将用于对编译器的解析,分析和代码生成调用。 不支持干扰结果的选项,对JShell的操作有不确定的影响。- 参数
-
options
- 编译器调用的附加选项 - 结果
-
Builder
实例(用于链接初始化)
-
executionEngine
public JShell.Builder executionEngine(String executionControlSpec)
- 参数
-
executionControlSpec
- 执行控制规范,其中记载了jdk.jshell.spi
包文档。 - 结果
-
Builder
实例(用于链接初始化)
-
executionEngine
public JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
- 参数
-
executionControlProvider
- 供应商供应执行引擎 -
executionControlParameters
- 提供者的参数,或默认参数为null
- 结果
-
Builder
实例(用于链接初始化)
-
fileManager
public JShell.Builder fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)
配置FileManager
进行编译和源分析。 如果未设置或传递为空,则将使用编译器的标准文件管理器(身份映射)。 用于需要覆盖编译器正常文件处理的特殊应用程序。 有关详细信息,请参阅文件管理器API。 文件管理器输入可以转发文件管理器,如果不需要,文件管理器可以被忽略(常数函数)。- 参数
-
mapping
- 给出编译器的标准文件管理器的函数,返回一个要使用的文件管理器 - 结果
-
Builder
实例(用于链接初始化)
-
build
public JShell build() throws IllegalStateException
构建一个JShell状态引擎。 这是所有JShell功能的入门点。 这将创建一个用于执行的远程进程。 因此重要的是关闭返回的实例。- 结果
- 国家引擎
- 异常
-
IllegalStateException
- 如果无法创建JShell
实例。
-
-