- java.lang.Object
-
- jdk.jshell.JShell.Builder
-
- 含まれているクラス:
- JShell
public static class JShell.Builder extends Object
JShellインスタンス用のビルダー。 このクラスのsetterメソッドを使用して、JShellのカスタム・インスタンスを作成します。 0個以上の場合は、build()メソッドを使用してJShellインスタンスを作成します。 これらはすべて連鎖できます。 たとえば、リモート出力ストリームとエラーストリームを設定します。
特別な設定が必要ない場合は、JShell myShell = JShell.builder() .out(myOutStream) .err(myErrStream) .build();JShell.builder().build()または同等のショートカットJShell.create()を使用してください。
-
-
メソッドのサマリー
-
-
-
メソッドの詳細
-
in
public JShell.Builder in(InputStream in)
実行中の評価の入力を設定します(System.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)
実行中の評価の出力を設定します(System.outです)。 制御プロセスとリモート・プロセスは、System.outを共有できます。デフォルト(設定されていない場合)は
System.outです。- パラメータ:
out- リモート実行プロセスでSystem.outにチャネル化されるPrintStream- 戻り値:
Builderインスタンス(連鎖初期化で使用)
-
err
public JShell.Builder err(PrintStream err)
実行中の評価のエラー出力を設定します(System.err)。 制御プロセスとリモート・プロセスは、System.errを共有できます。デフォルト(設定されていない場合)は
System.errです。- パラメータ:
err- リモート実行プロセスでSystem.errにチャネル化されるPrintStream- 戻り値:
Builderインスタンス(連鎖初期化で使用)
-
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()を使用してアクセスし、EvalExceptionおよびUnresolvedReferenceExceptionのStackTraceElement.getFileName()で確認できます。ジェネレータへの入力は、
Snippetおよび整数です。 2つのスニペットでは整数が同じになり、1つのスニペットが上書きされますが、それ以外の場合は一意になります。コールバックはスニペットの処理中に送信され、スニペットおよび全体としての状態は安定していません。 システム状態を変更するためのコール(スニペット状態を含む)は実行しないでください。 スニペットの問合せは、
Snippet.id()を除いて行うことができます。status(Snippet)を除き、コールバックからJShellインスタンスをコールすることはできません。デフォルトの動作(これが設定されていない場合、または
generatorがnullの場合)では、文字列に変換された整数としてIDが生成されます。- パラメータ:
generator- ID文字列を生成するBiFunctionまたはnull- 戻り値:
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ビルダー・メソッドのうち、最大1つを使用します。- パラメータ:
executionControlSpec- 実行制御仕様。jdk.jshell.spiパッケージのドキュメントに記載されています。- 戻り値:
Builderインスタンス(連鎖初期化で使用)
-
executionEngine
public JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
実行するカスタム・エンジンを設定します。 スニペットの実行は、指定されたExecutionControlインスタンスによって提供されます。 これらのオーバーロードされたexecutionEngineビルダー・メソッドのうち、最大1つを使用します。- パラメータ:
executionControlProvider- 実行エンジンを提供するプロバイダexecutionControlParameters- プロバイダのパラメータ、またはデフォルト・パラメータの場合はnull- 戻り値:
Builderインスタンス(連鎖初期化で使用)
-
fileManager
public JShell.Builder fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)
コンパイルおよびソース分析で使用されるFileManagerを構成します。 nullを設定または渡さない場合は、コンパイラの標準ファイル・マネージャが使用されます(アイデンティティ・マッピング)。 コンパイラの通常のファイル処理をオーバーライドする必要がある特殊なアプリケーションで使用する場合。 詳細は、ファイル・マネージャAPIを参照してください。 ファイルマネージャーの入力により、ファイルマネージャーを転送できます。これが不要な場合は、受信ファイルマネージャーを無視できます(定数関数)。- パラメータ:
mapping- コンパイラの標準ファイル・マネージャを指定して、使用するファイル・マネージャを返す関数- 戻り値:
Builderインスタンス(連鎖初期化で使用)
-
build
public JShell build() throws IllegalStateException
JShell状態エンジンを構築します。 これは、すべてのJShell機能のエントリ・ポイントです。 これにより、実行用のリモート・プロセスが作成されます。 したがって、返されるインスタンスをクローズすることが重要です。- 戻り値:
- 状態エンジン
- 例外:
IllegalStateException-JShellインスタンスを作成できなかった場合。
-
-