- 含まれているクラス:
JShell
JShell
インスタンスのビルダー。 このクラスでsetterメソッドを使用して、JShell
のカスタム・インスタンスを作成します。 これらがゼロ以上になったら、build()
メソッドを使用してJShell
インスタンスを作成します。 これらはすべて連鎖できます。 たとえば、リモート出力およびエラー・ストリームを設定します:
JShell myShell =
JShell.builder()
.out(myOutStream)
.err(myErrStream)
.build();
特別な設定が不要な場合は、JShell.builder().build()
または同等のショートカットJShell.create()
を使用します。-
メソッドのサマリー
修飾子と型メソッド説明build()
JShell状態エンジンを構築します。compilerOptions
(String... options) コンパイラ・オプションを追加します。console
(JShellConsole console) 実行中の評価のコンソールを設定します。err
(PrintStream err) 実行中の評価(it'sSystem.err
)のエラー出力を設定します。executionEngine
(String executionControlSpec) 実行するカスタム・エンジンを設定します。executionEngine
(ExecutionControlProvider executionControlProvider, Map<String, String> executionControlParameters) 実行するカスタム・エンジンを設定します。コンパイルおよびソース分析で使用されるFileManager
を構成します。idGenerator
(BiFunction<Snippet, Integer, String> generator) スニペットの識別名のジェネレータを設定します。in
(InputStream in) 実行中の評価(it'sSystem.in
)の入力を設定します。out
(PrintStream out) 実行中の評価(it'sSystem.out
)の出力を設定します。remoteVMOptions
(String... options) VMを起動するための追加のVMオプションを設定します。tempVariableNameGenerator
(Supplier<String> generator) Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
のVarSnippet
の一時変数名のジェネレータを設定します。
-
メソッドの詳細
-
in
public JShell.Builder in(InputStream in) 実行中の評価(it'sSystem.in
)の入力を設定します。 ノート: スニペットまたは他のユーザー入力にSystem.in
を使用するアプリケーションでは、リモート・プロセスの入力ストリームとしてSystem.in
を使用できません。InputStream
のread
メソッドは、ユーザーが入力を取り消したことを示すInterruptedIOException
をスローできます。 現在実行中のスニペットは自動的にstopped
になります。デフォルトは、これが設定されていない場合、空の入力ストリームを指定 --
new ByteArrayInputStream(new byte[0])
。- パラメータ:
in
- リモート実行プロセスでSystem.in
にチャネルされるInputStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
out
public JShell.Builder out(PrintStream out) 実行中の評価(it'sSystem.out
)の出力を設定します。 制御プロセスとリモート・プロセスはSystem.out
を共有できます。これが設定されていない場合、デフォルトは
System.out
です。- パラメータ:
out
- リモート実行プロセスでSystem.out
にチャネルされるPrintStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
err
public JShell.Builder err(PrintStream err) 実行中の評価(it'sSystem.err
)のエラー出力を設定します。 制御プロセスとリモート・プロセスはSystem.err
を共有できます。これが設定されていない場合、デフォルトは
System.err
です。- パラメータ:
err
- リモート実行プロセスでSystem.err
にチャネルされるPrintStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
console
public JShell.Builder console(JShellConsole console) 実行中の評価のコンソールを設定します。これが未設定の場合、デフォルトはコンソール (
System.console()
は、スニペットの実行中にnull
を返します)ではありません。- パラメータ:
console
- スニペットの実行中に使用するコンソール- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)- 導入されたバージョン:
- 21
-
tempVariableNameGenerator
public JShell.Builder tempVariableNameGenerator(Supplier<String> generator) Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
のVarSnippet
の一時変数名のジェネレータを設定します。このメソッドは、明示的に必要でないかぎり使用しないでください。
ジェネレータは、新しく作成されたVarSnippetインスタンスに使用されます。 変数の名前は
PersistentSnippet.name()
で照会されます。コールバックはスニペットの処理中に送信され、JShell状態は安定していません。 コールバックから
JShell
インスタンスでコールを行うことはできません。生成された名前は、アクティブなスニペット内で一意である必要があります。
デフォルト動作(これが設定されていないか、
generator
がnullの場合)は、プレフィクス・ドル記号("$")を持つ連続番号として名前を生成することです。- パラメータ:
generator
-Supplier
は一時変数名文字列またはnull
を生成- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
idGenerator
public JShell.Builder idGenerator(BiFunction<Snippet, Integer, String> generator) スニペットの識別名のジェネレータを設定します。このメソッドは、明示的に必要でないかぎり使用しないでください。
ジェネレータは、新しく作成されたスニペット・インスタンスに使用されます。 識別名(id)は
Snippet.id()
でアクセスされ、StackTraceElement.getFileName()
でEvalException
とUnresolvedReferenceException
にアクセスできます。ジェネレータへの入力は、
Snippet
および整数です。 整数は2つのスニペットで同じになり、1つのスニペットが上書きされますが、それ以外の場合は一意になります。コールバックはスニペットの処理中に送信され、スニペットおよび全体としての状態は安定していません。 システム状態(スニペット状態を含む)を変更するためのコールは実行しないでください。
Snippet.id()
を除き、Snippetの問合せを作成することができます。status(Snippet)
を除き、JShell
インスタンスに対するコールはコールバックから実行できません。デフォルトの動作(これが設定されていないか、
generator
がnullの場合)では、文字列に変換された整数としてIDが生成されます。- パラメータ:
generator
- idストリングまたはnull
を生成するBiFunction
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
remoteVMOptions
public JShell.Builder remoteVMOptions(String... options) VMを起動するための追加のVMオプションを設定します。- パラメータ:
options
- リモートVMのオプション- 戻り値:
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 IllegalStateExceptionJShell状態エンジンを構築します。 これは、すべてのJShell機能のエントリ・ポイントです。 これにより、実行用のリモート・プロセスが作成されます。 したがって、返されたインスタンスを閉じることが重要です。- 戻り値:
- 状態エンジン
- 例外:
IllegalStateException
-JShell
インスタンスを作成できなかった場合。
-