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

クラスJShell.Builder

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を使用できません。

      InputStreamreadメソッドは、ユーザーが入力を取消したことを通知するために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_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つのスニペットで同じものになります。スニペットは互いに上書きしますが、それ以外は一意です。

      コールバックはスニペットの処理中に送信され、スニペットと状態は全体として安定しません。 システム状態を変更するための呼び出しは行われません。(スニペット状態を含む)を実行する必要があります。 Snippet.id()を除き、Snippetの問合せを作成することができます。 JShellインスタンスに対するコールは、status(Snippet)以外のコールバックからは実行できません。

      デフォルトの動作(これが設定されていないか、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ビルダー・メソッドの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

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

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