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 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 TypeMethodDescriptionInvokes 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 JdiExecutionControl
redefine, referenceTypeMethods declared in class StreamingExecutionControl
addToClasspath, close, 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
-
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
-