加藤 (2010年10月14日 10:21) 産業システム部 / JAVA
print(message);
public static void main(String[] args) { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("javascript"); // 外部スクリプトファイルを読み込んで実行する。 try { // 外部スクリプトファイルで宣言されている // "message"変数に値を渡す処理 engine.put("message", "Hello Java Scripting"); // 外部スクリプトファイルのパスを指定して実行する。 engine.eval(new FileReader("C://../sample.js")); } catch(ScriptException ex) { ex.printStackTrace(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } }
Java SE6のスクリプティング機能を利用して外部のスクリプトファイルを実行する。
加藤 (2010年10月14日 10:21)
産業システム部 / JAVA
産業システム部の加藤です。
今回は、Java SE6(Mustang)の「スクリプティング機能」を利用して
外部スクリプトファイルを実行する方法を紹介しようと思います。
スクリプティング機能では、外部のスクリプトファイルをJavaで読み込み実行することが可能です。
さらに、Java側からスクリプトファイルに宣言されているオブジェクトに値を渡したり、
逆に、スクリプトファイル側で実行した処理結果をJava側に戻すことも可能です。
今回は、簡単なサンプルとして外部のスクリプトファイルで、
「Hello Java Scripting」という文字列をコンソールに出力するコードを実装し、
それをJava側から呼び出すコードを紹介して終わりとさせていただきます。
スクリプトファイル側の実装(ファイル名:sample.js)
Java側の実装
public static void main(String[] args) { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("javascript"); // 外部スクリプトファイルを読み込んで実行する。 try { // 外部スクリプトファイルで宣言されている // "message"変数に値を渡す処理 engine.put("message", "Hello Java Scripting"); // 外部スクリプトファイルのパスを指定して実行する。 engine.eval(new FileReader("C://../sample.js")); } catch(ScriptException ex) { ex.printStackTrace(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } }