モジュール jdk.jshell
パッケージ 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()を使用してアクセスし、EvalExceptionおよびUnresolvedReferenceExceptionStackTraceElement.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インスタンスを作成できなかった場合。