Spec-Zone.ru › OpenJDK 25

Класс 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

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

Конструктор Описание
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

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

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 — вызываемый объект Method
Возвращает:
значение или 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jshell/jdk/jshell/execution/DirectExecutionControl.html

Spec-Zone.ru

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