小代码js
2016-05-14 07:53
615 查看
/*************** frist js ****************/ import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class wz { public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); //也可以将javascript改成js try{ runJs(engine, 2.0, 400.0); } catch(ScriptException e){ e.printStackTrace(); } catch (NoSuchMethodException e2){ e2.printStackTrace(); } } public static void runJs(ScriptEngine engine, double M3_FN, double M3_fh1) throws ScriptException, NoSuchMethodException { String script = "function f1(a){ return a*10;}"; engine.eval(script); Invocable inv = (Invocable) engine; Object obj = inv.invokeFunction("f1", 2);//f1是方法名,2是实参 System.out.println(obj); String js = "function f2()\n{\n var a=0; var b="+M3_FN+"*"+obj+"/3600; \n if("+M3_fh1+">=50){ a="+M3_fh1+"+b;}\n return a;\n}"; System.out.println(js); engine.eval(js); Object obj2 = inv.invokeFunction("f2"); System.out.println(obj2); } }