Module jdk.jshell
Package jdk.jshell.spi
package jdk.jshell.spi
定义了可插拔的JShell执行引擎的服务提供者接口。JShell核心跟踪和编译代码片段,然后将它们(以包装类表示)发送到执行引擎进行加载,并在可执行代码片段的情况下执行。JShell实现包括一个默认执行引擎(当前为远程进程,由JDI控制)。通过实现
ExecutionControl
接口及其生成类,以及安装它到JShell.Builder.executionEngine(String)
,可以使用其他执行引擎。传递的字符串是一个ExecutionControl
规范。
ExecutionControl
规范是可选地跟随参数规范的ExecutionControlProvider
名称。规范的语法如下:
规范 := 名称 : 参数 | 名称 名称 := 标识符 参数 := 参数 , 参数 | 参数 | 参数 := 标识符 ( 值 )其中“名称”是
ExecutionControlProvider
的名称。其中“参数”是来自ExecutionControlProvider.defaultParameters()
的Map键和括号中的值;例如,参见JdiExecutionControlProvider
。其中“标识符”是来自基本多文种平面的一系列Java标识符部分字符。
例如:
- local
- jdi:hostname(localhost)
- failover:1(jdi),2(jdi:launch(true),timeout(3000)),3(local)
- 自:
- 9
- 参见:
-
ClassDescription该接口指定了必须提供的功能,以实现可插拔的JShell执行引擎。将类名与类字节码捆绑在一起。类安装(加载或重新定义)遇到问题。发生了未经请求的执行引擎终止。所有
ExecutionControl
异常的抽象基类。发生了内部问题。该命令未实现。遇到具有未解析引用的DeclarationSnippet
的异常。运行用户代码特定异常的抽象基类。指示ExecutionControl.invoke(java.lang.String, java.lang.String)
(或理论上ExecutionControl.varValue(java.lang.String, java.lang.String)
)被ExecutionControl.stop()
中断的异常。发生了“正常”用户异常。JShell用于生成用于评估代码片段所需的执行引擎的提供者。提供给可插拔的JShell执行引擎的功能。该异常的构造和抛出嵌入在JShell核心实现生成的代码中,以便在执行RECOVERABLE_DEFINED
用户方法时抛出此异常。