Класс 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 и заданные OutputStream. 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, 2021, 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/17/docs/api/jdk.jshell/jdk/jshell/execution/Util.html