在项目上面 如果需要修改比较重要的业务代码 就需要将整个项目重新编译 如果使用js等来执行就可以免去编译
jdk自带执行js等脚本语言的类库
1.简单操作变量实例
ScriptEngine js = new ScriptEngineManager().getEngineByName("js");//通过脚本管理器 获取js调用类
js.put("name","见鹿呀");//设置上下文变量 这个变量全局可用 js能获取并修改java也可以
js.eval("var age='12';");//设置变量
js.eval("print(age);");//js打印
System.out.println(js.get("name"));
js.eval("var name='淑芬';");//修改全局变量
System.out.println(js.get("name"));
System.out.println(js.get("age"));//打印js变量
2.操作js函数
Object eval = js.eval(“fun=function(a,b){return a+b}”);//编写js函数
Invocable js1 = (Invocable) js;//强转invocable才能调用函数
Object fun = js1.invokeFunction(“fun”, 1, 2);//第一个参数为函数名 后面为参数值
System.out.println((int)(double)fun);
3.调用脚本文件中的js代码
String strFile = Thread.currentThread().getClass().getResource("/").getPath() + "/test.js";
Reader reader = new FileReader(new File(strFile));
js.eval(reader);