Spec-Zone.ru › OpenJDK 27

Класс 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)
Задаёт дополнительные параметры виртуальной машины для её запуска.
JShell.Builder tempVariableNameGenerator(Supplier<String> generator)
Задаёт генератор имён временных переменных для VarSnippet типа Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии.
Финализация устарела и планируется к удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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 — Supplier для генерации строки имени временной переменной или null
Возвращает:
экземпляр Builder (для использования в цепочке инициализации)

idGenerator

public JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)
Задаёт генератор идентифицирующих имён для фрагментов кода.

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

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

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

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

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

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

remoteVMOptions

public JShell.Builder remoteVMOptions(String... options)
Задаёт дополнительные параметры виртуальной машины для её запуска.
Параметры:
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.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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