- java.lang.Object
-
- jdk.jshell.execution.DirectExecutionControl
-
- 实现的所有接口
-
AutoCloseable
,ExecutionControl
- 已知直接子类:
-
LocalExecutionControl
,RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
在当前进程中运行的ExecutionControl
实现。 可以直接使用,也可以通过Util.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput)
的频道使用。- 从以下版本开始:
- 9
-
-
嵌套类汇总
-
Nested classes/interfaces declared in interface jdk.jshell.spi.ExecutionControl
ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
-
-
构造方法摘要
构造方法 构造器 描述 DirectExecutionControl()
使用默认类加载创建实例。DirectExecutionControl(LoaderDelegate loaderDelegate)
创建一个实例,将加载程序操作委托给指定的委托。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 protected void
classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
通知已重新定义类。protected void
clientCodeEnter()
标记用户代码。protected void
clientCodeLeave()
标记偏离用户代码。protected 类<?>
findClass(String name)
查找具有指定二进制名称的类。protected String
invoke(方法 doitMethod)
调用指定的“doit-method”,一个没有参数的静态方法。void
stop()
中断正在运行的调用。protected String
throwConvertedInvocationException(Throwable cause)
将用户代码中的传入异常转换为子类型ExecutionControl.ExecutionControlException
的实例,并抛出转换后的异常。protected String
throwConvertedOtherException(Throwable ex)
将代理程序代码中的传入异常转换为子类型ExecutionControl.ExecutionControlException
的实例,并抛出转换后的异常。protected static String
valueString(Object value)
将Object
值从ExecutionControl.invoke(String, String)
或ExecutionControl.varValue(String, String)
转换为String
。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 jdk.jshell.spi.ExecutionControl
addToClasspath, close, extensionCommand, invoke, load, redefine, varValue
-
-
-
-
构造方法详细信息
-
DirectExecutionControl
public DirectExecutionControl(LoaderDelegate loaderDelegate)
创建一个实例,将加载程序操作委托给指定的委托。- 参数
-
loaderDelegate
- 处理加载类的委托
-
DirectExecutionControl
public DirectExecutionControl()
使用默认类加载创建实例。
-
-
方法详细信息
-
classesRedefined
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
通知已重新定义类。- 参数
-
cbcs
- 要重新定义的类名和字节码 - 异常
-
ExecutionControl.NotImplementedException
- 如果没有实施 -
ExecutionControl.EngineTerminationException
- 执行引擎已终止
-
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
中断正在运行的调用。不支持。
- Specified by:
-
stop
在界面ExecutionControl
- 异常
-
ExecutionControl.EngineTerminationException
- 执行引擎已终止 -
ExecutionControl.InternalException
- 发生内部问题
-
findClass
protected 类<?> findClass(String name) throws ClassNotFoundException
查找具有指定二进制名称的类。- 参数
-
name
- 类的二进制名称 - 结果
- 类对象
- 异常
-
ClassNotFoundException
- 如果找不到该课程
-
invoke
protected String invoke(方法 doitMethod) throws 异常
调用指定的“doit-method”,一个没有参数的静态方法。 此类中的ExecutionControl.invoke(java.lang.String, java.lang.String)
将调用此方法来调用。- 参数
-
doitMethod
- 要调用的方法 - 结果
- 值或null
- 异常
-
异常
- 由Method.invoke(Object, Object...)
或任何ExecutionControl.ExecutionControlException
引发的任何异常传递。
-
valueString
protected static String valueString(Object value)
将Object
值从ExecutionControl.invoke(String, String)
或ExecutionControl.varValue(String, String)
转换为String
。- 参数
-
value
- 要转换的值 - 结果
-
String
表示
-
throwConvertedInvocationException
protected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalException
将用户代码中的传入异常转换为子类型ExecutionControl.ExecutionControlException
的实例,并抛出转换后的异常。- 参数
-
cause
- 转换的例外 - 结果
- 永远不会回来,因为它总是抛出
- 异常
-
ExecutionControl.RunException
- 用于正常的异常事件 -
ExecutionControl.InternalException
- 内部问题
-
throwConvertedOtherException
protected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalException
将代理程序代码中的传入异常转换为子类型ExecutionControl.ExecutionControlException
的实例,并抛出转换后的异常。- 参数
-
ex
- 转换的例外 - 结果
- 永远不会回来,因为它总是抛出
- 异常
-
ExecutionControl.RunException
- 用于正常的异常事件 -
ExecutionControl.InternalException
- 内部问题
-
clientCodeEnter
protected void clientCodeEnter() throws ExecutionControl.InternalException
标记用户代码。- 异常
-
ExecutionControl.InternalException
- 在意外故障情况下
-
clientCodeLeave
protected void clientCodeLeave() throws ExecutionControl.InternalException
标记偏离用户代码。- 异常
-
ExecutionControl.InternalException
- 在意外故障情况下
-
-