Class JdiDefaultExecutionControl
java.lang.Object
jdk.jshell.execution.StreamingExecutionControl
jdk.jshell.execution.JdiExecutionControl
jdk.jshell.execution.JdiDefaultExecutionControl
- All Implemented Interfaces:
AutoCloseable,ExecutionControl
The implementation of
ExecutionControl that the
JShell-core uses by default.
Launches a remote process -- the "remote agent".
Interfaces to the remote agent over a socket and via JDI.
Designed to work with RemoteExecutionControl.- Since:
- 9
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceStart an external process where the user's snippets can be run.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 -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the execution engine.Invokes an executable Snippet by calling a method on the specified wrapper class.voidstop()Interrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.protected VirtualMachinevm()Returns the JDIVirtualMachineinstance.Methods declared in class jdk.jshell.execution.JdiExecutionControl
redefine, referenceTypeMethods declared in class jdk.jshell.execution.StreamingExecutionControl
addToClasspath, close, extensionCommand, load, varValueMethods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface jdk.jshell.spi.ExecutionControl
addToClasspath, extensionCommand, load, varValue
-
Method Details
-
invoke
public String invoke(String classname, String methodname) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException Description copied from interface:ExecutionControlInvokes an executable Snippet by calling a method on the specified wrapper class. The method must have no arguments and return String.- Specified by:
invokein interfaceExecutionControl- Overrides:
invokein classStreamingExecutionControl- Parameters:
classname- the class whose method should be invokedmethodname- the name of method to invoke- Returns:
- the result of the execution or null if no result
- Throws:
ExecutionControl.UserException- the invoke raised a user exceptionExecutionControl.ResolutionException- the invoke attempted to directly or indirectly invoke an unresolved snippetExecutionControl.StoppedException- if theinvoke()was canceled byExecutionControl.stop()ExecutionControl.EngineTerminationException- the execution engine has terminatedExecutionControl.InternalException- an internal problem occurredExecutionControl.RunException
-
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalExceptionInterrupts a running remote invoke by manipulating remote variables and sending a stop via JDI.- Throws:
ExecutionControl.EngineTerminationException- the execution engine has terminatedExecutionControl.InternalException- an internal problem occurred
-
close
public void close()Description copied from class:StreamingExecutionControlCloses the execution engine. Send an exit command to the remote agent.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceExecutionControl- Overrides:
closein classStreamingExecutionControl
-
vm
Description copied from class:JdiExecutionControlReturns the JDIVirtualMachineinstance.- Specified by:
vmin classJdiExecutionControl- Returns:
- the virtual machine
- Throws:
ExecutionControl.EngineTerminationException- if the VM is dead/disconnected
-