Spec-Zone.ru › OpenJDK 27

Класс DirectExecutionControl

java.lang.Object
jdk.jshell.execution.DirectExecutionControl
Все реализуемые интерфейсы:
AutoCloseable, ExecutionControl
Прямые известные подклассы:
LocalExecutionControl, RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
Реализация ExecutionControl, выполняющаяся в текущем процессе. Может использоваться напрямую или через канал с помощью Util.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput).
С версии:
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
Произошло «обычное» пользовательское исключение.

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

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

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

Модификатор и тип Метод Описание
void addToClasspath(String cp)
Добавляет путь в путь к классам для выполнения.
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
Уведомляет о переопределении классов.
protected void clientCodeEnter()
Отмечает начало выполнения пользовательского кода.
protected void clientCodeLeave()
Отмечает завершение выполнения пользовательского кода.
void close()
Завершает работу этого механизма выполнения.
Object extensionCommand(String command, Object arg)
Выполняет нестандартную команду (или стандартную команду из более новой версии).
protected Class<?> findClass(String name)
Находит класс с указанным двоичным именем.
protected String invoke(Method doitMethod)
Вызывает указанный «метод doit» — статический метод без параметров.
String invoke(String className, String methodName)
Вызывает исполняемый фрагмент кода (Snippet), вызывая метод указанного класса-обёртки.
void load(ExecutionControl.ClassBytecodes[] cbcs)
Пытается загрузить новые классы.
void redefine(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.
String varValue(String className, String varName)
Возвращает значение переменной.

Методы, объявленные в классе 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()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного периода реального времени.

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

DirectExecutionControl

public DirectExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузки указанному делегату.
Параметры:
loaderDelegate — делегат для обработки загрузки классов

DirectExecutionControl

public DirectExecutionControl()
Создаёт экземпляр, используя загрузку классов по умолчанию.

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

load

public void load(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Пытается загрузить новые классы.
Определено в:
load в интерфейсе ExecutionControl
Параметры:
cbcs — имя класса и байт-код для загрузки
Исключения:
ExecutionControl.ClassInstallException — при загрузке классов произошла ошибка; некоторые или все классы не были загружены
ExecutionControl.NotImplementedException — если метод не реализован
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу

redefine

public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Пытается переопределить ранее загруженные классы.
Определено в:
redefine в интерфейсе ExecutionControl
Параметры:
cbcs — имя класса и байт-код для переопределения
Исключения:
ExecutionControl.ClassInstallException — при переопределении классов произошла ошибка; некоторые или все классы не были переопределены
ExecutionControl.NotImplementedException — если метод не реализован
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу

classesRedefined

protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Уведомляет о переопределении классов.
Параметры:
cbcs — имя класса и байт-код для переопределения
Исключения:
ExecutionControl.NotImplementedException — если метод не реализован
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу

invoke

public String invoke(String className, String methodName) throws ExecutionControl.RunException, ExecutionControl.InternalException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Вызывает исполняемый фрагмент кода (Snippet), вызывая метод указанного класса-обёртки. Метод не должен иметь аргументов и должен возвращать String.
Определено в:
invoke в интерфейсе ExecutionControl
Параметры:
className — класс, метод которого следует вызвать
methodName — имя вызываемого метода
Возвращает:
результат выполнения или null, если результата нет
Исключения:
ExecutionControl.UserException — при вызове возникло пользовательское исключение
ExecutionControl.ResolutionException — вызов попытался прямо или косвенно вызвать неразрешённый фрагмент кода
ExecutionControl.StoppedException — если invoke() был отменён вызовом ExecutionControl.stop()
ExecutionControl.InternalException — произошла внутренняя проблема
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу
ExecutionControl.RunException

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

addToClasspath

public void addToClasspath(String cp) throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса: ExecutionControl
Добавляет путь в путь к классам для выполнения.
Определено в:
addToClasspath в интерфейсе ExecutionControl
Параметры:
cp — добавляемый путь
Исключения:
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу
ExecutionControl.InternalException — произошла внутренняя проблема

stop

public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Прерывает выполняющийся вызов.

Не поддерживается.

Определено в:
stop в интерфейсе ExecutionControl
Исключения:
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу
ExecutionControl.InternalException — произошла внутренняя проблема

extensionCommand

public Object extensionCommand(String command, Object arg) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса: ExecutionControl
Выполняет нестандартную команду (или стандартную команду из более новой версии).
Определено в:
extensionCommand в интерфейсе ExecutionControl
Параметры:
command — нестандартная команда
arg — аргумент команды
Возвращает:
возвращаемое значение команды
Исключения:
ExecutionControl.UserException — при выполнении команды возникло пользовательское исключение
ExecutionControl.ResolutionException — команда попыталась прямо или косвенно вызвать неразрешённый фрагмент кода
ExecutionControl.StoppedException — если команда была отменена вызовом ExecutionControl.stop()
ExecutionControl.EngineTerminationException — механизм выполнения завершил работу
ExecutionControl.NotImplementedException — если метод не реализован
ExecutionControl.InternalException — произошла внутренняя проблема
ExecutionControl.RunException

close

public void close()
Описание скопировано из интерфейса: ExecutionControl
Завершает работу этого механизма выполнения. Реализация должна освободить все ресурсы, занятые этим механизмом выполнения.

После вызова close нельзя вызывать методы этого интерфейса.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе ExecutionControl

findClass

protected Class<?> findClass(String name) throws ClassNotFoundException
Находит класс с указанным двоичным именем.
Параметры:
name — двоичное имя класса
Возвращает:
объект Class
Исключения:
ClassNotFoundException — если класс не удалось найти

invoke

protected String invoke(Method doitMethod) throws Exception
Вызывает указанный «метод doit» — статический метод без параметров. Метод invoke(java.lang.String, java.lang.String) этого класса вызывает его для выполнения вызова.
Параметры:
doitMethod — вызываемый метод
Возвращает:
значение или null
Исключения:
Exception — любые исключения, выброшенные методом Method.invoke(Object, Object...), или любые исключения ExecutionControl.ExecutionControlException, которые следует передать дальше.

valueString

protected static String valueString(Object value)
Преобразует значение Object из ExecutionControl.invoke(String, String) или ExecutionControl.varValue(String, String) в String.
Параметры:
value — преобразуемое значение
Возвращает:
представление String

throwConvertedInvocationException

protected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalException
Преобразует перехваченные исключения в пользовательском коде в экземпляры подтипов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
Параметры:
cause — преобразуемое исключение
Возвращает:
никогда не возвращает, так как всегда выбрасывает исключение
Исключения:
ExecutionControl.RunException — при обычных исключениях
ExecutionControl.InternalException — при внутренних проблемах

throwConvertedOtherException

protected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalException
Преобразует перехваченные исключения в коде агента в экземпляры подтипов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
Параметры:
ex — преобразуемое исключение
Возвращает:
никогда не возвращает, так как всегда выбрасывает исключение
Исключения:
ExecutionControl.RunException — при обычных исключениях
ExecutionControl.InternalException — при внутренних проблемах

clientCodeEnter

protected void clientCodeEnter() throws ExecutionControl.InternalException
Отмечает начало выполнения пользовательского кода.
Исключения:
ExecutionControl.InternalException — в случае неожиданного сбоя

clientCodeLeave

protected void clientCodeLeave() throws ExecutionControl.InternalException
Отмечает завершение выполнения пользовательского кода.
Исключения:
ExecutionControl.InternalException — в случае неожиданного сбоя

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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