JAVA的动态执行1 - javax.script.ScriptEngineManager

JDK1.6提供了很多新功能,其中有一个叫javax.script的软件包,用于解析Javascript代码。通过这个功能我们可以在程序运行时动态执行一些JS代码。

范例1:
// 创建引擎管理器
ScriptEngineManager sem = new ScriptEngineManager();
// 创建一个处理JS的引擎
ScriptEngine engine = sem.getEngineByExtension("js");
try{
    // EVAL
    engine.eval("if(1 > 2){re = true;}else{re = false;}");
}catch(ScriptException ex){
    ex.printStackTrace();
}
//获取JS变量re
System.out.println((engine.get("re")));


范例2:
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("JavaScript");
//写一个函数
String script = "function max(a, b) "
	+ "{ return (a > b) ? true : false;}";
//执行
engine.eval(script);
Invocable inv = (Invocable) engine;
//执行函数
System.out.println(inv.invokeFunction("max", "1", "2"));



你可能感兴趣的:(JavaScript,java)