Класс 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. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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)
- Параметры:
-
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.