- java.lang.Object
-
- jdk.jshell.execution.StreamingExecutionControl
-
- jdk.jshell.execution.JdiExecutionControl
-
- 实现的所有接口
-
AutoCloseable
,ExecutionControl
- 已知直接子类:
-
JdiDefaultExecutionControl
public abstract class JdiExecutionControl extends StreamingExecutionControl implements ExecutionControl
摘要JDI实现ExecutionControl
。- 从以下版本开始:
- 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
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
JdiExecutionControl(ObjectOutput out, ObjectInput in)
创建一个实例。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 void
redefine(ExecutionControl.ClassBytecodes[] cbcs)
重新定义指定的类。protected ReferenceType
referenceType(VirtualMachine vm, String name)
返回与指定类名对应的JDIReferenceType
。protected abstract VirtualMachine
vm()
返回JDIVirtualMachine
实例。-
声明方法的类 jdk.jshell.execution.StreamingExecutionControl
close
-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 jdk.jshell.spi.ExecutionControl
addToClasspath, close, extensionCommand, invoke, load, stop, varValue
-
-
-
-
构造方法详细信息
-
JdiExecutionControl
protected JdiExecutionControl(ObjectOutput out, ObjectInput in)
创建一个实例。- 参数
-
out
- 远程代理的输出 -
in
- 远程代理的输入
-
-
方法详细信息
-
vm
protected abstract VirtualMachine vm() throws ExecutionControl.EngineTerminationException
返回JDIVirtualMachine
实例。- 结果
- 虚拟机
- 异常
-
ExecutionControl.EngineTerminationException
- 如果VM已死/已断开连接
-
redefine
public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException
重新定义指定的类。 其中'redefine'是JDI和JVMTI中的类的就地替换(保留类标识) - 也就是说,不需要重新编译对类的现有引用。 此实现使用JDIVirtualMachine.redefineClasses(java.util.Map)
。 如果类的签名已更改,则不会成功(请参阅JDI规范)。 JShell核心旨在适应不成功的重新定义。- Specified by:
-
redefine
在接口ExecutionControl
- 参数
-
cbcs
- 要重新定义的类名和字节码 - 异常
-
ExecutionControl.ClassInstallException
- 重新定义类时发生异常,部分或全部未重新定义 -
ExecutionControl.EngineTerminationException
- 执行引擎已终止
-
referenceType
protected ReferenceType referenceType(VirtualMachine vm, String name)
返回与指定类名对应的JDIReferenceType
。- 参数
-
vm
- 当前的JDIVirtualMachine
由vm()
返回 -
name
- 要查找的类名 - 结果
-
对应的
ReferenceType
-
-