模块 jdk.jshell
包 jdk.jshell.spi
包jdk.jshell.spi
为可插入的 JShell 执行引擎定义服务提供者接口。 JShell 核心跟踪和编译 Snippet,然后将它们(在包装类中表示)发送到执行引擎进行加载,如果是可执行 Snippet,则执行。 JShell 实现包括一个默认的执行引擎(目前是一个由 JDI 控制的远程进程)。通过实现
ExecutionControl 接口及其生成类,实现 ExecutionControlProvider 接口,并将其与 JShell.Builder.executionEngine(String) 其他执行引擎一起安装。其中传递的字符串是 ExecutionControl 规范。
ExecutionControl spec 是 ExecutionControlProvider 名称(可选)后跟参数规范。规范的语法是:
spec := name : params
| name
name := identifier
params := param , params
| param
|
param := identifier ( value )
其中“名称”是 ExecutionControlProvider name。其中'param'是来自ExecutionControlProvider.defaultParameters() 的映射键和括号内的值;参见,例如,JdiExecutionControlProvider 。其中“标识符”是来自基本多语言平面的 Java标识符部分字符 序列。
例如:
- 当地的
- jdi:主机名(本地主机)
- 故障转移:1(jdi),2(jdi:启动(真),超时(3000)),3(本地)
- 自从:
- 9
- 参见:
-
类描述该接口指定了实现可插入 JShell 执行引擎所必须提供的功能。将类名称与类字节码捆绑在一起。类安装(加载或重新定义)遇到问题。发生意外执行引擎终止。所有
ExecutionControl异常的抽象基础。发生内部问题。该命令未执行。异常表明遇到了具有未解析引用的DeclarationSnippet。特定于运行用户代码的异常的抽象基础。发生“正常”用户异常。JShell 使用的提供程序来生成评估 Snippets 所需的执行引擎。可插入 JShell 执行引擎可用的功能。这个异常的构造和抛出嵌入在 JShell 核心实现生成的代码中,这样一来,在执行RECOVERABLE_DEFINED用户方法时,就会抛出这个异常。