実行環境その3 javax.scriptパッケージのAPI
Java SE 6では、Javaプログラム内でスクリプトを実行するための仕様JSR223(Scripting for the Java Platform)に基づくAPIがjavax.scriptパッケージに導入された。これらを用いてスクリプトを実行する場合は、%JFX_HOME%\trunk\libディレクトリ内のJARファイルや%JFX_HOME%\trunk\src以下の*.fxファイルなどをクラスパスに追加した上で、リスト1-2のように実行する。
このとき、スクリプトに渡すパラメータの名称を"パラメータ名:クラス名"とし、スクリプト内でもこの名称を利用するのがポイントだ。なお、APIについては「Java スクリプトプログラマーズガイド」を参照していただきたい。
リスト1-2 javax.scriptのパッケージを利用してスクリプトを実行
import java.io.FileReader;
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
..........
// (1) ScriptEngineManagerの生成
ScriptEngineManager manager = new ScriptEngineManager();
// (2) ScriptEngineの取得方法
ScriptEngine engine = manager.getEngineByName( "FX" );
// ScriptEngine engine = manager.getEngineByExtension( "fx" );
// (3) スクリプト内の変数の値を設定
Bindings bindings = engine.createBindings();
bindings.put( "p1:Number", 123 );
bindings.put( "p2:String", "文字列のパラメータ" );
// (4) スクリプトをファイルから読み込んで実行
Object result = engine.eval( new FileReader( "スクリプトのファイル名" ), bindings );
説明は駆け足になってしまったが、これでJavaFXによるスクリプトを実行する環境が整った。このほかにEclipseやNetBeansのプラグインも存在するので、IDEを使いたい場合はOpenJFXのWebサイトの「ダウンロード」からこれらをダウンロードしていただきたい。
次回から、JavaFXの構文について説明していく。基本的な構文を理解できると、ソースコードを単なる「おまじない」ではなく、意味をより深く理解できるようになるはずだ。