Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Интерфейс Описание
static final class  ExecutionControl.ClassBytecodes
Объединяет имя класса с байт-кодом класса.
static class  ExecutionControl.ClassInstallException
При установке класса (загрузке или переопределении) возникла проблема.
static class  ExecutionControl.EngineTerminationException
Произошло незапрошенное завершение работы движка выполнения.
static class  ExecutionControl.ExecutionControlException
Абстрактный базовый класс всех исключений ExecutionControl.
static class  ExecutionControl.InternalException
Произошла внутренняя ошибка.
static class  ExecutionControl.NotImplementedException
Команда не реализована.
static class  ExecutionControl.ResolutionException
Исключение, указывающее на обнаружение DeclarationSnippet с неразрешёнными ссылками.
static class  ExecutionControl.RunException
Абстрактный базовый класс исключений, связанных с выполнением пользовательского кода.
static class  ExecutionControl.StoppedException
Исключение, указывающее, что ExecutionControl.invoke(java.lang.String, java.lang.String) (или, теоретически, ExecutionControl.varValue(java.lang.String, java.lang.String)) был прерван вызовом ExecutionControl.stop().
static class  ExecutionControl.UserException
Произошло обычное пользовательское исключение.

Краткое описание конструкторов

Конструктор Описание
RemoteExecutionControl()
Создаёт экземпляр, используя загрузку классов по умолчанию.
RemoteExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузчика указанному делегату.

Краткое описание методов

Модификатор и тип Метод Описание
protected void clientCodeEnter()
Отмечает вход в пользовательский код.
static void main(String[] args)
Запускает агент, подключаясь к ядру JShell через сокет, указанный в аргументе командной строки.
void redefine(ExecutionControl.ClassBytecodes[] cbcs)
На удалённой стороне переопределение выполняется только для регистрации переопределённых классов
String varValue(String className, String varName)
Возвращает значение переменной.

Методы, объявленные в классе DirectExecutionControl

addToClasspath, classesRedefined, clientCodeLeave, close, extensionCommand, findClass, invoke, invoke, load, stop, throwConvertedInvocationException, throwConvertedOtherException, valueString
Модификатор и тип Метод Описание
void addToClasspath(String cp)
Добавляет путь к пути классов выполнения.
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
Уведомляет о переопределении классов.
protected void clientCodeLeave()
Отмечает выход из пользовательского кода.
void close()
Завершает работу этого движка выполнения.
Object extensionCommand(String command, Object arg)
Выполняет нестандартную команду (или стандартную команду из более новой версии).
protected Class<?> findClass(String name)
Находит класс с указанным двоичным именем.
protected String invoke(Method doitMethod)
Вызывает указанный «метод выполнения» — статический метод без параметров.
String invoke(String className, String methodName)
Вызывает исполняемый фрагмент кода, вызывая метод указанного класса-обёртки.
void load(ExecutionControl.ClassBytecodes[] cbcs)
Пытается загрузить новые классы.
void stop()
Прерывает выполняющийся вызов.
protected String throwConvertedInvocationException(Throwable cause)
Преобразует перехваченные исключения в пользовательском коде в экземпляры подклассов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
protected String throwConvertedOtherException(Throwable ex)
Преобразует перехваченные исключения в коде агента в экземпляры подклассов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
protected static String valueString(Object value)
Преобразует значение Object из ExecutionControl.invoke(String, String) или ExecutionControl.varValue(String, String) в String.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API планируется удалить в будущей версии.
Метод завершения помечен как устаревший и планируется к удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения заданного промежутка реального времени.

Подробное описание конструкторов

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 — движок выполнения завершил работу

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API