Класс 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
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе jdk.jshell.spi.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 |
Возвращает значение переменной. |
Методы, объявленные в классе jdk.jshell.execution.DirectExecutionControl
addToClasspath, classesRedefined, clientCodeLeave, close, extensionCommand, findClass, invoke, invoke, load, stop, throwConvertedInvocationException, throwConvertedOtherException, valueString, varValue
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе jdk.jshell.spi.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 - Параметры:
-
className- имя обертывающего класса переменной -
varName- имя переменной - Возвращает:
- значение переменной
- Исключения:
-
ExecutionControl.UserException- форматирование значения вызвало пользовательское исключение -
ExecutionControl.ResolutionException- форматирование значения попыталось напрямую или косвенно вызвать неразрешённый фрагмент -
ExecutionControl.StoppedException- если форматирование значения было отменено с помощьюExecutionControl.stop() -
ExecutionControl.EngineTerminationException- движок выполнения завершил работу -
ExecutionControl.InternalException- возникла внутренняя проблема ExecutionControl.RunException
clientCodeEnter
protected void clientCodeEnter()
Описание скопировано из класса:
DirectExecutionControlПомечает вход в пользовательский код.
- Переопределяет:
-
clientCodeEnterв классеDirectExecutionControl
© 1993, 2021, 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/17/docs/api/jdk.jshell/jdk/jshell/execution/RemoteExecutionControl.html