Класс 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 |
Добавляет параметры компилятора. |
JShell.Builder |
console |
Задаёт консоль для выполняемого вычисления. |
JShell.Builder |
err |
Задаёт поток вывода ошибок для выполняемого вычисления (это System.err). |
JShell.Builder |
executionEngine |
Задаёт пользовательский механизм выполнения. |
JShell.Builder |
executionEngine |
Задаёт пользовательский механизм выполнения. |
JShell.Builder |
fileManager |
Настраивает FileManager, используемый при компиляции и анализе исходного кода. |
JShell.Builder |
idGenerator |
Задаёт генератор идентифицирующих имён для фрагментов кода. |
JShell.Builder |
in |
Задаёт входные данные для выполняемого вычисления (это System.in). |
JShell.Builder |
out |
Задаёт выходные данные для выполняемого вычисления (это System.out). |
JShell.Builder |
remoteVMOptions |
Задаёт дополнительные параметры виртуальной машины для её запуска. |
JShell.Builder |
tempVariableNameGenerator |
Задаёт генератор имён временных переменных для VarSnippet типа Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND. |
Подробное описание методов
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. Идентифицирующее имя (id) доступно через 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)
- Параметры:
-
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
- Возвращает:
- машина состояний
- Выбрасывает:
-
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://docs.oracle.com/en/java/javase/25/docs/api/jdk.jshell/jdk/jshell/JShell.Builder.html