参考:
http://blog.youkuaiyun.com/szwangdf/article/details/25376415
1,首先下载jar:
http://www.mozilla.org/rhino/
2,例子:
public String runScript(String js, String functionName, Object[] functionParams) {
Context rhino = Context.enter();
rhino.setOptimizationLevel(-1);
try {
Scriptable scope = rhino.initStandardObjects();
ScriptableObject.putProperty(scope, "javaContext", Context.javaToJS(UserInfoSetFrag.this, scope));
ScriptableObject.putProperty(scope, "javaLoader", Context.javaToJS(UserInfoSetFrag.class.getClassLoader(), scope));
rhino.evaluateString(scope, js, "UserInfoSetFrag", 1, null);
Function function = (Function) scope.get(functionName, scope);
Object result = function.call(rhino, scope, scope, functionParams);
if (result instanceof String) {
return (String) result;
} else if (result instanceof NativeJavaObject) {
return (String) ((NativeJavaObject) result).getDefaultValue(String.class);
} else if (result instanceof NativeObject) {
return (String) ((NativeObject) result).getDefaultValue(String.class);
}
return result.toString();
} finally {
Context.exit();
}
}
//matchStr是一个字符串,js方法代码字符串
String result = runScript("vara=\"" + matchStr + "\";eval_r(decodeURI(a));", "ruleOfStudent", new Object[]{text, grade, false});
if("false".equals(result))
{
showOtherCheckerDialog();
return false;
}