Java SE 6.0が出たので実験
とりあえずメモ
package jp.co.ffc;
import java.io.StringReader;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Script {
public static void main(String[] args) throws Exception {
ScriptEngineManager sem = new ScriptEngineManager();
// JavaScriptのエンジンを取得
ScriptEngine se = sem.getEngineByName("js");
// JavaのオブジェクトをJavaScriptから使うためにバインドするのに使う
Bindings bindings = se.getBindings(ScriptContext.ENGINE_SCOPE);
// Javaのオブジェクトをバインドする
Person person = new Person();
bindings.put("person", person);
// 実行!
StringReader sr = new StringReader("person.name = '広島 太郎';");
se.eval(sr);
// 広島 太郎と表示される
System.out.println(person.getName());
}
}
class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}