システム開発ブログ

Java SE6のスクリプティング機能(スクリプト内で、Javaのクラスを利用する)

加藤

加藤 (2010年10月22日 12:30)
企画開発部 / JAVA

みなさん、こんにちは。
企画開発部の加藤です。

Java SE6(Mustang)の「スクリプティング機能」では、
スクリプト言語内で、Javaのクラスを利用することが可能です。
今回は、標準で準備されているオープンソースのJavaScripの実装である
「Mozilla Rhino」でJavaのクラスを利用する方法を紹介します。

スクリプト上でJavaのオブジェクトを生成する場合も、
他のJavaScriptのクラスを生成する場合と同じく「new」キーワードを使います。
但し、Javaのように変数の型宣言を行いません。
また、基本的に「完全修飾名=パッケージ名も含んだ形式」でクラスを宣言します。
// java.util.HashMapクラスを生成
map = new java.util.HashMap();


但し、importPackage宣言を利用してJavaのように事前にパッケージを
インポートすることも可能です。
そうすれば、クラス名を指定するだけでクラスをインスタンス化することが出来ます。

// java.utilパッケージをインポート
importPackage(java.util);
// クラス名だけでHashMapクラスを生成
map = new HashMap();


今回は、外部のスクリプトファイルで、
「java.util.Mapクラス」を利用するコードを実装し、
それをJava側から呼び出す簡単なサンプルを紹介して終わりとさせていただきます。


スクリプトファイル側の実装(ファイル名:sample.js)
importPackage(java.util);
map = new HashMap();
map.put("hoge1", "1");
map.put("hoge2", "2");
print("hoge1=" + map.get("hoge1"));
print("hoge2=" + map.get("hoge2"));

Java側の実装
public static void main(String[] args) {
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("javascript");

    // 外部スクリプトファイルを読み込んで実行する。
    try {
        // 外部スクリプトファイルのパスを指定して実行する。
        engine.eval(new FileReader("C://../sample.js"));
    } catch(ScriptException ex) {
        ex.printStackTrace();
    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
    }
}

システムのトラブル解決を承ります。すぐにシステムリフォームを体験できますシステム診断・システムリフォームのお申し込みはこちらから。

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

ページのトップ