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变量reSystem.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"));