Класс Util
java.lang.Object
jdk.jshell.execution.Util
public class Util extends Object
Различные вспомогательные методы для настройки реализаций
ExecutionControl. В частности, реализаций с удалённым выполнением.- Начиная с версии:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static void |
detectJdiExitEvent |
Отслеживает поток событий JDI на наличие VMDeathEvent и VMDisconnectEvent. |
static void |
forwardExecutionControl |
Перенаправляет команды из входного потока указанному экземпляру ExecutionControl, а затем передаёт ответы в выходной поток. |
static void |
forwardExecutionControlAndIO |
Перенаправляет команды из входного потока указанному экземпляру ExecutionControl, а затем передаёт ответы в выходной поток. |
static ExecutionControl |
remoteInputOutput |
Создаёт ExecutionControl для заданных пакетированных потоков ввода и вывода. |
Подробное описание методов
forwardExecutionControl
public static void forwardExecutionControl(ExecutionControl ec, ObjectInput in, ObjectOutput out)
Перенаправляет команды из входного потока указанному экземпляру
ExecutionControl, а затем передаёт ответы в выходной поток.- Параметры:
-
ec— прямой экземплярExecutionControlдля обработки команд -
in— входной поток команд -
out— выходной поток ответов на команды
forwardExecutionControlAndIO
public static void forwardExecutionControlAndIO(ExecutionControl ec, InputStream inStream, OutputStream outStream, Map<String, Consumer<OutputStream>> outputStreamMap, Map<String, Consumer<InputStream>> inputStreamMap) throws IOException
Перенаправляет команды из входного потока указанному экземпляру
ExecutionControl, а затем передаёт ответы в выходной поток.- Параметры:
-
ec— прямой экземплярExecutionControlдля обработки команд -
inStream— поток, из которого создаётся входной поток команд -
outStream— поток, который будет передавать указанные дополнительные каналы (например,System.outиSystem.err), а также выходной поток ответов на команды. -
outputStreamMap— карта соответствий между именами дополнительных потоков для передачи и методами установки потоков. Имена, начинающиеся с '$', зарезервированы для внутреннего использования. -
inputStreamMap— карта соответствий между именами дополнительных потоков для передачи и методами установки потоков. Имена, начинающиеся с '$', зарезервированы для внутреннего использования. - Выбрасывает:
-
IOException— если при использовании переданных потоков возникли ошибки
remoteInputOutput
public static ExecutionControl remoteInputOutput(InputStream input, OutputStream output, Map<String, OutputStream> outputStreamMap, Map<String, InputStream> inputStreamMap, BiFunction<ObjectInput, ObjectOutput, ExecutionControl> factory) throws IOException
Создаёт ExecutionControl для заданных пакетированных потоков ввода и вывода. Указанный InputStream распаковывается, а его содержимое передаётся в ObjectInput и указанные OutputStreams. ObjectOutput и значения, прочитанные из указанного InputStream, упаковываются и отправляются в указанный OutputStream.
- Параметры:
-
input— пакетированный входной поток -
output— пакетированный выходной поток -
outputStreamMap— карта соответствий между именами потоков и выходными потоками для перенаправления. Имена, начинающиеся с '$', зарезервированы для внутреннего использования. -
inputStreamMap— карта соответствий между именами потоков и входными потоками для перенаправления. Имена, начинающиеся с '$', зарезервированы для внутреннего использования. -
factory— для создания ExecutionControl из ObjectInput и ObjectOutput. - Возвращает:
- созданный ExecutionControl
- Выбрасывает:
-
IOException— если при настройке потоков возникло исключение
detectJdiExitEvent
public static void detectJdiExitEvent(VirtualMachine vm, Consumer<String> unbiddenExitHandler)
Отслеживает поток событий JDI на наличие
VMDeathEvent и VMDisconnectEvent. При обнаружении вызывает unbiddenExitHandler.- Параметры:
-
vm— виртуальная машина для проверки -
unbiddenExitHandler— обработчик, который принимает информацию о завершении работы
© 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/Util.html