# Package jdk.jshell.execution

package jdk.jshell.execution
Provides implementation support for building JShell execution engines. Includes concrete and abstract implementations of the `ExecutionControl` interface. Also, provides related communication utilities. This package may be used to define alternative execution engines. The default JShell execution engine is included.

Since:
  9

Related Packages
Package
Description
jdk.jshell
Provides interfaces for creating tools, such as a Read-Eval-Print Loop (REPL), which interactively evaluate "snippets" of Java programming language code.
jdk.jshell.spi
Defines the Service Provider Interface for pluggable JShell execution engines.
jdk.jshell.tool
Provides a mechanism to launch an instance of a Java shell tool.
Class
Description
DirectExecutionControl
An `ExecutionControl` implementation that runs in the current process.
FailOverExecutionControlProvider
Tries other providers in sequence until one works.
JdiDefaultExecutionControl
The implementation of `ExecutionControl` that the JShell-core uses by default.
JdiDefaultExecutionControl.JdiStarter
Start an external process where the user's snippets can be run.
JdiDefaultExecutionControl.JdiStarter.TargetDescription
The description of a started external process.
JdiExecutionControl
Abstract JDI implementation of `ExecutionControl`.
JdiExecutionControlProvider
A provider of remote JDI-controlled execution engines.
JdiInitiator
Sets up a JDI connection, providing the resulting JDI `VirtualMachine` and the `Process` the remote agent is running in.
JdiInitiator.ProcessStarted
Callback that should invoked when the remote process is invoked.
LoaderDelegate
This interface specifies the loading specific subset of `ExecutionControl`.
LocalExecutionControl
An implementation of `ExecutionControl` which executes in the same JVM as the JShell-core.
LocalExecutionControlProvider
A provider of execution engines which run in the same process as JShell.
RemoteExecutionControl
The remote agent runs in the execution process (separate from the main JShell process).
StreamingExecutionControl
An implementation of the `ExecutionControl` execution engine SPI which streams requests to a remote agent where execution takes place.
Util
Miscellaneous utility methods for setting-up implementations of `ExecutionControl`.