Spec-Zone.ru › OpenJDK 24

Класс JShell.Builder

java.lang.Object
jdk.jshell.JShell.Builder
Окружающий класс:
JShell
public static class JShell.Builder extends Object
Построитель экземпляров JShell. Создайте пользовательские экземпляры JShell, используя методы-сеттеры в этом классе. После нуля или более таких методов, используйте метод build(), чтобы создать экземпляр JShell. Все эти действия можно выполнить последовательно. Например, для установки удалённых потоков ввода-вывода ошибок:
 
     JShell myShell =
       JShell.builder()
         .out(myOutStream)
         .err(myErrStream)
         .build();  
Если специальная настройка не требуется, просто используйте JShell.builder().build() или эквивалентную короткую запись JShell.create().
С тех пор, как:
9

Краткое описание методов

Модификатор и тип Метод Описание
JShell build()
Создаёт движок состояния JShell.
JShell.Builder compilerOptions(String... options)
Добавляет параметры компилятора.
JShell.Builder console(JShellConsole console)
Устанавливает консоль для текущей оценки.
JShell.Builder err(PrintStream err)
Устанавливает поток вывода ошибок для текущей оценки (он же System.err).
JShell.Builder executionEngine(String executionControlSpec)
Устанавливает пользовательский движок для выполнения.
JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
Устанавливает пользовательский движок для выполнения.
JShell.Builder fileManager(Function<StandardJavaFileManager, StandardJavaFileManager> mapping)
Конфигурирует FileManager, используемый для компиляции и анализа исходного кода.
JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
Устанавливает генератор идентификаторов имён для фрагментов кода.
JShell.Builder in(InputStream in)
Устанавливает входной поток для текущей оценки (он же System.in).
JShell.Builder out(PrintStream out)
Устанавливает выходной поток для текущей оценки (он же System.out).
JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры JVM для запуска JVM.
JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
Устанавливает генератор временных имён переменных для VarSnippet вида Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

in

public JShell.Builder in(InputStream in)
Устанавливает входные данные для выполнения (это System.in). Примечание: приложения, использующие System.in для фрагментов кода или другого пользовательского ввода, не могут использовать System.in в качестве потока ввода для удалённого процесса.

Метод read класса InputStream может выбросить исключение InterruptedIOException для сигнализации о том, что пользователь отменил ввод. Текущий фрагмент кода будет автоматически stopped.

По умолчанию, если это не задано, используется пустой поток ввода — new ByteArrayInputStream(new byte[0]).

Параметры:
in - поток InputStream, который будет перенаправлен в System.in в удалённом процессе выполнения
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

out

public JShell.Builder out(PrintStream out)
Устанавливает вывод для выполняемого оценивания (это System.out). Управляющий процесс и удалённый процесс могут обмениваться System.out.

По умолчанию, если это не задано, используется System.out.

Параметры:
out - поток PrintStream, который будет перенаправлен в System.out в удалённом процессе выполнения
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

err

public JShell.Builder err(PrintStream err)
Устанавливает вывод ошибок для выполняемого оценивания (это System.err). Управляющий процесс и удалённый процесс могут обмениваться System.err.

По умолчанию, если это не задано, используется System.err.

Параметры:
err - поток PrintStream, который будет перенаправлен в System.err в удалённом процессе выполнения
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

console

public JShell.Builder console(JShellConsole console)
Устанавливает консоль для выполняемого оценивания.

По умолчанию, если это не задано, консоль отсутствует (System.console() вернёт null во время выполнения фрагмента кода).

Параметры:
console - консоль, используемая во время выполнения фрагмента кода
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)
С тех пор как:
21

tempVariableNameGenerator

public JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
Устанавливает генератор имён временных переменных для VarSnippet типа Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

Не используйте этот метод, если в этом нет явной необходимости.

Генератор будет использоваться для вновь созданных экземпляров VarSnippet. Имя переменной запрашивается методом PersistentSnippet.name().

Обратный вызов отправляется во время обработки фрагмента, состояние JShell не стабильно. Из обратного вызова нельзя делать никаких вызовов экземпляру JShell.

Сгенерированное имя должно быть уникальным в активных фрагментах.

По умолчанию (если этот метод не установлен или generator равен null) имя генерируется как последовательный номер с префиксом "$".

Параметры:
generator - функция, которая генерирует строку с именем временной переменной, или null
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

idGenerator

public JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
Устанавливает генератор идентификаторов для фрагментов.

Не используйте этот метод, если в этом нет явной необходимости.

Генератор будет использоваться для вновь созданных экземпляров Snippet. Идентификатор (id) доступен через метод Snippet.id() и виден в выводе StackTraceElement.getFileName() для EvalException и UnresolvedReferenceException.

На вход генератору подаются Snippet и целое число. Целое число будет одинаковым для двух фрагментов, перезаписывающих друг друга, но в противном случае уникальным.

Обратный вызов отправляется во время обработки фрагмента, состояние фрагмента и системы в целом нестабильны. Не следует производить вызовы, изменяющие состояние системы (включая состояние фрагмента). Доступны запросы состояния фрагмента, за исключением Snippet.id(). Из обратного вызова не допускаются вызовы экземпляру JShell, за исключением status(Snippet).

По умолчанию (если этот метод не установлен или generator равен null) id генерируется как строковое представление целого числа.

Параметры:
generator - функция, генерирующая строку id или null
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

remoteVMOptions

public JShell.Builder remoteVMOptions(String... options)
Устанавливает дополнительные параметры VM для запуска виртуальной машины.
Параметры:
options - параметры для удалённой виртуальной машины
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

compilerOptions

public JShell.Builder compilerOptions(String... options)
Добавляет параметры компилятора. Эти дополнительные параметры будут использоваться при разборе, анализе и генерации кода вызовами компилятора. Параметры, влияющие на результаты, не поддерживаются и имеют неопределённые последствия для работы JShell.
Параметры:
options - дополнительные параметры для вызовов компилятора
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

executionEngine

public JShell.Builder executionEngine(String executionControlSpec)
Устанавливает пользовательский движок для выполнения. Выполнение фрагментов кода будет осуществляться с помощью экземпляра ExecutionControl, выбранного указанным спецификатором управления выполнением. Используйте не более одного из перегруженных методов executionEngine билдера.
Параметры:
executionControlSpec - спецификатор управления выполнением, который документирован в документации пакета jdk.jshell.spi.
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

executionEngine

public JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
Устанавливает пользовательский движок для выполнения. Выполнение фрагментов кода будет осуществляться с помощью указанного экземпляра ExecutionControl. Используйте не более одного из перегруженных методов executionEngine билдера.
Параметры:
executionControlProvider - поставщик, обеспечивающий движок выполнения
executionControlParameters - параметры поставщику, или null для параметров по умолчанию
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

fileManager

public JShell.Builder fileManager(Function<StandardJavaFileManager, StandardJavaFileManager> mapping)
Настройка FileManager, используемого компиляцией и анализом исходного кода. Если не установлено или передано null, используется стандартный менеджер файлов компилятора (отображение по идентичности). Используется в особых приложениях, где необходимо переопределить обычную обработку файлов компилятором. Дополнительная информация содержится в API менеджера файлов. Входной менеджер файлов позволяет перенаправлять менеджеры файлов. Если это не нужно, можно проигнорировать входящий менеджер файлов (постоянная функция).
Параметры:
mapping - функция, которая, получив стандартный менеджер файлов компилятора, возвращает используемый менеджер файлов
Возвращает:
экземпляр класса Builder (для использования в цепочке инициализации)

build

public JShell build() throws IllegalStateException
Создаёт движок JShell состояния. Это входная точка для всех функций JShell. Создаёт удалённый процесс для выполнения. Поэтому важно закрыть возвращённый экземпляр.
Возвращает:
движок состояния
Исключение:
IllegalStateException - если экземпляр JShell не может быть создан.

© 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/JShell.Builder.html

Spec-Zone.ru

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