在有些情况下需要在java里面执行javascript,这时rhino就可以帮忙了。mozilla的一个开源产品。
之前的一篇博客http://my.oschina.net/yybear/blog/101493里面介绍的事件模块处理程序就有利用javascript定义eventHandler,然后解释javascript执行。
先看一个简单的应用:
public class JavaScriptHandle {
private Scriptable global;
private int optimizationLevel = -1; // 介于-1到9之间,负值表示使用解释性执行,不会生成class
private Script script;
void handle() {
Context ctx = Context.enter();
try {
ctx.setOptimizationLevel(optimizationLevel);
if (script == null) {
script = ctx.compileString("var str = 'xx'", "firstRhino", 0, null);
}
Scriptable scope = new NativeObject();
scope.setParentScope(global);
script.exec(ctx, scope);
} finally {
Context.exit();
}
}
publ