Класс RemoteExecutionControl
java.lang.Object
jdk.jshell.execution.DirectExecutionControl
jdk.jshell.execution.RemoteExecutionControl
- Все реализуемые интерфейсы:
AutoCloseable, ExecutionControl
public class RemoteExecutionControl extends DirectExecutionControl implements ExecutionControl
Удалённый агент выполняется в процессе исполнения (отдельно от основного процесса JShell). Этот агент загружает код через сокет из основного процесса JShell, выполняет этот код и выполняет прочие действия. Специализация
DirectExecutionControl, добавляющая поддержку остановки, управляемой внешним процессом. Предназначен для работы с JdiDefaultExecutionControl.- Начиная с версии:
- 9
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе ExecutionControl
ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RemoteExecutionControl() |
Создаёт экземпляр, используя загрузку классов по умолчанию. |
RemoteExecutionControl |
Создаёт экземпляр, делегируя операции загрузчика указанному делегату. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
clientCodeEnter() |
Отмечает вход в пользовательский код. |
static void |
main |
Запускает агент, подключаясь к ядру JShell через сокет, указанный в аргументе командной строки. |
void |
redefine |
При переопределении классов на удалённой стороне выполняется только регистрация переопределённых классов |
void |
stop() |
Прерывает выполняющийся вызов. |
String |
varValue |
Возвращает значение переменной. |
Методы, объявленные в классе DirectExecutionControl
addToClasspath, classesRedefined, clientCodeLeave, close, extensionCommand, findClass, invoke, invoke, load, stop, throwConvertedInvocationException, throwConvertedOtherException, valueString
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе ExecutionControl
addToClasspath, close, extensionCommand, invoke, load
Подробное описание конструкторов
RemoteExecutionControl
public RemoteExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузчика указанному делегату.
- Параметры:
-
loaderDelegate— делегат для загрузки классов
RemoteExecutionControl
public RemoteExecutionControl()
Создаёт экземпляр, используя загрузку классов по умолчанию.
Подробное описание методов
main
public static void main(String[] args) throws Exception
Запускает агент, подключаясь к ядру JShell через сокет, указанный в аргументе командной строки.
- Параметры:
-
args— стандартные аргументы командной строки; предполагается, что единственным аргументом является номер сокета - Исключения:
-
Exception— любое непредвиденное исключение
redefine
public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
При переопределении классов на удалённой стороне выполняется только регистрация переопределённых классов
- Определено в:
-
redefineв интерфейсеExecutionControl - Параметры:
-
cbcs— имя класса и байт-код для переопределения - Исключения:
-
ExecutionControl.ClassInstallException— при переопределении классов возникло исключение; некоторые или все классы не были переопределены -
ExecutionControl.NotImplementedException— если метод не реализован -
ExecutionControl.EngineTerminationException— механизм выполнения завершил работу
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из класса:
DirectExecutionControlПрерывает выполняющийся вызов.
Не поддерживается.
- Определено в:
-
stopв интерфейсеExecutionControl - Переопределяет:
-
stopв классеDirectExecutionControl - Исключения:
-
ExecutionControl.EngineTerminationException— механизм выполнения завершил работу -
ExecutionControl.InternalException— возникла внутренняя проблема
varValue
public String varValue(String className, String varName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса:
ExecutionControlВозвращает значение переменной.
- Определено в:
-
varValueв интерфейсеExecutionControl - Переопределяет:
-
varValueв классеDirectExecutionControl - Параметры:
-
className— имя класса-обёртки переменной -
varName— имя переменной - Возвращает:
- значение переменной
- Исключения:
-
ExecutionControl.UserException— при форматировании значения возникло пользовательское исключение -
ExecutionControl.ResolutionException— при форматировании значения была предпринята прямая или косвенная попытка вызвать неразрешённый фрагмент кода -
ExecutionControl.StoppedException— если форматирование значения было отменено вызовомExecutionControl.stop() -
ExecutionControl.EngineTerminationException— механизм выполнения завершил работу -
ExecutionControl.InternalException— возникла внутренняя проблема ExecutionControl.RunException
clientCodeEnter
protected void clientCodeEnter()
Описание скопировано из класса:
DirectExecutionControlОтмечает вход в пользовательский код.
- Переопределяет:
-
clientCodeEnterв классеDirectExecutionControl
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jshell/jdk/jshell/execution/RemoteExecutionControl.html