java 脚本引擎执行javascript脚本
2018-03-05 10:47
309 查看
java脚本引擎是从JDK6.0之后添加的新功能,语法使用Rhino。
public class ScriptTest { public static void main(String args[]) throws ScriptException, NoSuchMethodException, IOException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); //声明一个msg 变量 engine.put("msg","this is msg!"); String jsCode = "var a = 10; var b =20;println(a+b);"; //执行javascript代码 engine.eval(jsCode); //修改变量 engine.eval("msg = 'this is msg2!';println(msg);"); //使用java获取变量 System.err.println(engine.get("msg")); //执行js方法 String jsFunc="function add(a,b){return a+b}"; engine.eval(jsFunc); Invocable invocable = (Invocable) engine; Object res = invocable.invokeFunction("add",new Object[]{5,7}); System.err.println(res); //在脚本中使用java String importJava = "importPackage(java.util);var list = Arrays.asList([\"嘻嘻\",\"哈哈\",\"咕咕\"]);"; engine.eval(importJava); List list = (List) engine.get("list"); System.err.println(list); //执行js文件 URL url = ScriptTest.class.getClassLoader().getResource("test.js"); FileReader reader = new FileReader(url.getPath()); engine.eval(reader); reader.close(); }
test.js(src下)
var a = 10; var b = 30; function mul() { return a*b; } println(mul());
相关文章推荐
- JDK8中Java调用Javascript脚本引擎动态定义与执行代码
- JDK8中Java调用Javascript脚本引擎动态定义与执行代码
- 执行脚本代码的java引擎--测试代码
- 脚本引擎执行javascript代码_Rhino引擎JAVA215
- 使用脚本引擎增加程序运行时动态执行能力(Java篇)
- Java脚本引擎执行 javascript 代码
- JAVA使用脚本引擎执行JS
- Java学习之动态编译-动态脚本引擎-脚本引擎执行javascript代码
- 使用脚本引擎增加程序运行时动态执行能力(Java篇)
- JAVA使用脚本引擎执行JS
- Java版AVG游戏开发入门示例[3]——脚本引擎的制作及应用
- java执行DOS命令或bat脚本需要等命令执行完有返回值(process.waitFor();)阻塞情况解决方法
- Java实现远程ssh执行shell脚本对文件打包下载
- 在JAVA中使用脚本引擎
- java执行sql脚本
- JAVA执行bat文件和shell脚本文件
- Java实践 — SSH远程执行Shell脚本
- java 执行sql脚本的2种方式
- java 动态编译与用Rhino引擎执行javascript代码
- 《深入理解java虚拟机》-虚拟机字节码执行引擎