Класс Util
java.lang.Object
jdk.jshell.execution.Util
public class Util extends Object
Различные вспомогательные методы для настройки реализаций
ExecutionControl. В особенности, реализации с удалённым выполнением.- Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/jdk.jshell/jdk/jshell/execution/Util.html