日曜日, 3月 29, 2009

JavaでJavaScriptを実行

Javaの中でjavascriptを実行する方法が分かったので記録しておく。

// インポートする
import javax.script.*;
// スクリプトエンジンを取り出す。
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");

// 文字列を与えて実行(返り値はObject)
se.eval("function foo(id) {this.id = id; return this;}");
se.eval("foo.prototype = {inc: function() {this.id += 1;},get: function() {return this.id;}};");
// 他にもReaderから読み込むメソッドもある。

// 実行コンテキスト
ScriptContext sc = se.getContext();
// 実行コンテキストにあるスコープ番号一覧
List scopes = sc.getScopes();
// 指定したスコープ番号での名前の束縛
Map = sc.getBindings(int scope);

0 件のコメント: