Класс 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 |
Устанавливает дополнительные параметры JVM для запуска JVM. |
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- функция, которая генерирует строку с именем временной переменной, или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)
- Параметры:
-
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://download.java.net/java/early_access/jdk24/docs/api/jdk.jshell/jdk/jshell/JShell.Builder.html