Spec-Zone.ru › OpenJDK 21

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

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе jdk.jshell.spi.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-method", статический метод без параметров.
String invoke(String className, String methodName)
Вызывает исполняемый фрагмент кода, вызывая метод в указанном классе-обёртке.
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)
Возвращает значение переменной.

Методы, объявленные в классе java.lang.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
Вызывает исполняемый фрагмент кода, вызывая метод указанного обертывающего класса. Метод не должен принимать аргументы и должен возвращать String.
Определено в:
invoke в интерфейсе ExecutionControl
Параметры:
className - класс, метод которого должен быть вызван
methodName - имя вызываемого метода
Возвращает:
результат выполнения или null, если результата нет
Исключения:
ExecutionControl.UserException - вызов вызвал исключение пользователя
ExecutionControl.ResolutionException - вызов попытался напрямую или косвенно вызвать неразрешенный фрагмент кода
ExecutionControl.StoppedException - если вызов был отменён методом 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 в интерфейсе 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
Помечает вход в пользовательский код.
Throws:
ExecutionControl.InternalException - в неожиданных случаях сбоя

clientCodeLeave

protected void clientCodeLeave() throws ExecutionControl.InternalException
Помечает выход из пользовательского кода.
Throws:
ExecutionControl.InternalException - в неожиданных случаях сбоя

© 1993, 2023, 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/21/docs/api/jdk.jshell/jdk/jshell/execution/DirectExecutionControl.html

Spec-Zone.ru

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