Java™ Platform
Standard Edition 7

パッケージ javax.script

スクリプト API は、Java TM スクリプトエンジンを定義するインタフェースとクラスで構成され、それらを Java アプリケーションで使用するためのフレームワークを提供します。

参照: 説明

パッケージ javax.script の説明

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

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

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

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

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

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

  5. スクリプトエンジンの検出とメタデータ: スクリプト API に記述されたアプリケーションは、スクリプトエンジンに対して固有の要件を持つ可能性があります。固有のスクリプト言語またはバージョン、あるいはその両方を必要とするものがある一方で、固有の実装エンジンまたはバージョン、あるいはその両方を必要とするものもあります。スクリプトエンジンは、実行時の検出と属性の照会が可能となるように、指定された方法でパッケージ化されます。エンジンの検出メカニズムは、JAR ファイルの仕様に記載されているサービスの検出メカニズムに基づいています。スクリプトエンジンの実装クラスは、META-INF/services/javax.script.ScriptEngineFactory というテキストリソースを含む jar ファイルにパッケージ化されます。このリソースには、jar ファイルにパッケージ化されている ScriptEngineFactory ごとに、対応する 1 行が含まれている必要があります。 ScriptEngineManager には、このメカニズムを使用して検出されたすべての ScriptEngineFactory インスタンスを取得する getEngineFactories メソッドが含まれています。ScriptEngineFactory には、スクリプトエンジンに関する属性を照会するためのメソッドが含まれます。

導入されたバージョン:
1.6
Java™ Platform
Standard Edition 7

バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.