Класс JdiExecutionControl
java.lang.Object
jdk.jshell.execution.StreamingExecutionControl
jdk.jshell.execution.JdiExecutionControl
- Все реализованные интерфейсы:
AutoCloseable, ExecutionControl
- Прямые известные подклассы:
JdiDefaultExecutionControl
public abstract class JdiExecutionControl extends StreamingExecutionControl implements ExecutionControl
Абстрактная реализация JDI для
ExecutionControl.- Начиная с версии:
- 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 |
Произошло обычное пользовательское исключение. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт экземпляр. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
redefine |
Переопределяет указанные классы. |
protected ReferenceType |
referenceType |
Возвращает JDI ReferenceType, соответствующий указанному имени класса. |
protected abstract VirtualMachine |
vm() |
Возвращает экземпляр JDI VirtualMachine. |
Методы, объявленные в классе StreamingExecutionControl
addToClasspath, close, extensionCommand, invoke, load, stop, varValue | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addToClasspath |
Добавляет путь к пути к классам выполнения. |
void |
close() |
Закрывает движок выполнения. |
Object |
extensionCommand |
Выполняет нестандартную команду (или стандартную команду из более новой версии). |
String |
invoke |
Вызывает исполняемый фрагмент, вызывая метод указанного класса-обёртки. |
void |
load |
Пытается загрузить новые классы. |
void |
stop() |
Прерывает выполняющийся вызов. |
String |
varValue |
Возвращает значение переменной. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт заданное время. |
final void |
wait |
Приостанавливает текущий поток до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт заданное время. |
Подробное описание конструкторов
JdiExecutionControl
protected JdiExecutionControl(ObjectOutput out, ObjectInput in)
Создаёт экземпляр.
- Параметры:
-
out— выходной поток удалённого агента -
in— входной поток удалённого агента
Подробное описание методов
vm
protected abstract VirtualMachine vm() throws ExecutionControl.EngineTerminationException
Возвращает экземпляр JDI
VirtualMachine.- Возвращает:
- виртуальную машину
- Выбрасывает:
-
ExecutionControl.EngineTerminationException— если виртуальная машина завершила работу или отключена
redefine
public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException
Переопределяет указанные классы. «Переопределение», как и в JDI и JVMTI, представляет собой замену классов на месте (с сохранением идентичности класса) — то есть существующие ссылки на класс не требуют перекомпиляции. В этой реализации используется JDI
VirtualMachine.redefineClasses(java.util.Map). Операция завершится неудачей, если сигнатура класса изменилась (см. спецификацию JDI). Ядро JShell разработано с учётом возможности неудачного переопределения.- Указано в:
-
redefineв интерфейсеExecutionControl - Параметры:
-
cbcs— имя класса и байт-код для переопределения - Выбрасывает:
-
ExecutionControl.ClassInstallException— при возникновении исключения во время переопределения классов; некоторые или все классы не были переопределены -
ExecutionControl.EngineTerminationException— если движок выполнения завершил работу
referenceType
protected ReferenceType referenceType(VirtualMachine vm, String name)
Возвращает JDI
ReferenceType, соответствующий указанному имени класса.- Параметры:
-
vm— текущая JDIVirtualMachine, возвращённая методомvm() -
name— имя класса для поиска - Возвращает:
- соответствующий
ReferenceType
© 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.