クラスJShell.Builder
- 含まれているクラス:
JShell
JShellインスタンスのビルダー。 このクラスでsetterメソッドを使用して、JShellのカスタム・インスタンスを作成します。 これらがゼロ以上になったら、build()メソッドを使用してJShellインスタンスを作成します。 これらはすべて連鎖できます。 たとえば、リモート出力およびエラー・ストリームを設定します:
JShell myShell =
JShell.builder()
.out(myOutStream)
.err(myErrStream)
.build();
特別な設定が不要な場合は、JShell.builder().build()または同等のショートカットJShell.create()を使用します。- 導入されたバージョン:
- 9
-
メソッドのサマリー
修飾子と型メソッド説明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インスタンスを作成できなかった場合。
-