モジュール java.scripting

パッケージjavax.script


パッケージjavax.script

スクリプトAPIは、Javaスクリプト・エンジンを定義するインタフェースとクラスで構成され、Javaアプリケーションで使用するためのフレームワークを提供します。 このAPIは、スクリプト言語で記述されたプログラムをJavaアプリケーション内で実行するアプリケーション・プログラマを対象としています。 通常、スクリプト言語のプログラムは、アプリケーションのエンド・ユーザーによって提供されます。

javax.scriptパッケージの主な機能は次のとおりです。

  1. スクリプトの実行: スクリプトとは、スクリプト・エンジンによって実行されるプログラムのソースとして使用される文字のストリームです。 スクリプトの実行では、ScriptEngineevalメソッドとInvocableインタフェースのメソッドを使用します。

  2. バインディング: この機能によって、Javaオブジェクトを名前付き変数としてスクリプト・プログラムに公開できます。 BindingsScriptContextクラスがこの目的に使用されます。

  3. コンパイル: この機能によって、スクリプト・エンジンのフロント・エンドによって生成された中間コードを格納し、繰返し実行することができます。 これは、同じスクリプトを複数回実行するアプリケーションの場合に便利です。 エンジンのフロント・エンドはスクリプト実行のたびにではなく、スクリプトごとに1回だけ実行すればよいので、これらのアプリケーションの効率を向上させることができます。 この機能はオプションであり、スクリプト・エンジンが実装しない可能性があることに注意してください。 呼出し側で、instanceofチェックを使用して、Compilableインタフェースが利用可能かどうかをチェックする必要があります。

  4. 呼び出し: この機能によって、スクリプト・エンジンのフロント・エンドによって生成された中間コードを再利用することができます。 コンパイルでは中間コードによって表されるスクリプト全体の再実行が可能になるのに対して、呼出しの機能ではスクリプト内の個々の手続き/メソッドが再実行可能になります。 コンパイルの場合にはあることですが、すべてのスクリプト・エンジンでこの機能が提供される必要はありません。 呼出し側で、Invocableが利用可能かどうかをチェックする必要があります。

  5. スクリプト・エンジンの検出: Scripting APIに書き込まれたアプリケーションには、スクリプト・エンジンに関する特定の要件があります。 固有のスクリプト言語またはバージョン、あるいはその両方を必要とするものがある一方で、固有の実装エンジンまたはバージョン、あるいはその両方を必要とするものもあります。 スクリプト・エンジンは、実行時の検出と属性の照会が可能となるように、指定された方法でパッケージ化されます。 エンジン発見メカニズムは、ServiceLoaderクラスで説明されているサービス・プロバイダのロード機能に基づいています。 ScriptEngineManagerには、このメカニズムを使用して検出されたすべてのScriptEngineFactoryインスタンスを取得するgetEngineFactoriesメソッドが含まれています。 ScriptEngineFactoryには、スクリプト・エンジンに関する属性を照会するためのメソッドが含まれます。

導入されたバージョン:
1.6
  • クラス
    説明
    evalメソッドの複数のバリアントに対する標準の実装を提供します。
    キーがすべてStringsであるキーと値のペアのマッピングです。
    再コンパイルを行わずに繰返し実行可能なフォームにスクリプトをコンパイルするメソッドを持つScriptEnginesによって実装されるオプションのインタフェースです。
    コンパイルの結果を格納するクラスによって拡張されます。
    以前に実行されたスクリプト内の手続きの呼出しを許可するメソッドを持つScriptEnginesによって実装されるオプションのインタフェースです。
    このインタフェースを実装するクラスは、アプリケーションでスクリプト・エンジンと、スコープ設定されたBindingsなどのオブジェクトとを接続するために使用されます。
    ScriptEngineは、この仕様のすべての実装で完全に機能することが必要なメソッドを持つ基本インタフェースです。
    ScriptEngineFactoryは、ScriptEnginesの説明およびインスタンス化に使用されます。
    ScriptEngineManagerは、ScriptEngineクラスの検出およびインスタンス化メカニズムを実装します。また、Managerが作成したすべてのエンジンで共有される状態を格納するキーと値のペアのコレクションを維持します。
    スクリプトAPIのジェネリックExceptionクラスです。
    HashMapまたは指定されたほかのMapによって補助されるBindingsの単純な実装です。
    ScriptContextの単純な実装です。