モジュール jdk.jshell
パッケージ jdk.jshell

クラスJShell.Builder

java.lang.Object
jdk.jshell.JShell.Builder
含まれているクラス:
JShell

public static class JShell.Builder extends Object
JShellインスタンスのビルダー。 このクラスでsetterメソッドを使用して、JShellのカスタム・インスタンスを作成します。 これらがゼロ以上になったら、build()メソッドを使用してJShellインスタンスを作成します。 これらはすべて連鎖できます。 たとえば、リモート出力およびエラー・ストリームを設定します:
 
     JShell myShell =
       JShell.builder()
         .out(myOutStream)
         .err(myErrStream)
         .build();  
特別な設定が不要な場合は、JShell.builder().build()または同等のショートカットJShell.create()を使用します。
  • メソッドの詳細

    • in

      public JShell.Builder in(InputStream in)
      実行中の評価(it's System.in)の入力を設定します。 ノート: スニペットまたは他のユーザー入力にSystem.inを使用するアプリケーションでは、リモート・プロセスの入力ストリームとしてSystem.inを使用できません。

      InputStreamreadメソッドは、ユーザーが入力を取り消したことを示すInterruptedIOExceptionをスローできます。 現在実行中のスニペットは自動的にstoppedになります。

      デフォルトは、これが設定されていない場合、空の入力ストリームを指定 -- new ByteArrayInputStream(new byte[0])

      パラメータ:
      in - リモート実行プロセスでSystem.inにチャネルされるInputStream
      戻り値:
      Builderインスタンス(チェーンの初期化に使用)
    • out

      public JShell.Builder out(PrintStream out)
      実行中の評価(it's System.out)の出力を設定します。 制御プロセスとリモート・プロセスはSystem.outを共有できます。

      これが設定されていない場合、デフォルトはSystem.outです。

      パラメータ:
      out - リモート実行プロセスでSystem.outにチャネルされるPrintStream
      戻り値:
      Builderインスタンス(チェーンの初期化に使用)
    • err

      public JShell.Builder err(PrintStream err)
      実行中の評価(it's System.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_SUBKINDVarSnippetの一時変数名のジェネレータを設定します。

      このメソッドは、明示的に必要でないかぎり使用しないでください。

      ジェネレータは、新しく作成された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()EvalExceptionUnresolvedReferenceExceptionにアクセスできます。

      ジェネレータへの入力は、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

      コンパイルおよびソース分析で使用されるFileManagerを構成します。 nullを設定または渡さない場合、コンパイラの標準ファイル・マネージャが(アイデンティティ・マッピング)を使用します。 コンパイラの通常のファイル処理をオーバーライドする必要がある特殊なアプリケーションで使用する場合。 詳細は、ファイル・マネージャAPIを参照してください。 ファイル・マネージャの入力により、ファイル・マネージャを転送できます。これが不要な場合、受信ファイル・マネージャは(コンスタント関数)を無視できます。
      パラメータ:
      mapping - コンパイラの標準ファイル・マネージャが指定された関数で、使用するファイル・マネージャを返します
      戻り値:
      Builderインスタンス(チェーンの初期化に使用)
    • build

      public JShell build() throws IllegalStateException
      JShell状態エンジンを構築します。 これは、すべてのJShell機能のエントリ・ポイントです。 これにより、実行用のリモート・プロセスが作成されます。 したがって、返されたインスタンスを閉じることが重要です。
      戻り値:
      状態エンジン
      例外:
      IllegalStateException - JShellインスタンスを作成できなかった場合。