学习笔记——JAVA执行javascript
来源:互联网 发布:c语言英语怎么说 编辑:程序博客网 时间:2024/06/08 18:46
java执行javascript Rhion引擎
package study;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.util.ArrayList;import java.util.List;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;/** * 测试脚本引擎执行javascript代码 * * @author http://blog.csdn.net/thewaiting * */public class test { public static void main(String[] args) throws ScriptException { // 获取脚本引擎对象 ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByName("javascript"); System.out.println(); // 定义变量,存储到引擎的上下文中 engine.put("msg", "测试"); String str = "var user = {name:'Tom',age:18,schools:['学校','dd']};"; str += "print(user.name);"; // 执行脚本 try { engine.eval(str); engine.eval("msg = '测试修改'"); System.out.println(engine.get("msg")); // 定义函数 engine.eval("function add(a,b){var sum =a + b;return sum;}"); // 取得调用接口 Invocable jsInvocable = (Invocable) engine; // 执行脚本中定义的方法 Object re = jsInvocable.invokeFunction("add", new Object[] { 5, 6 }); System.out.println(re); // 导入其他的java包,使用其中的java类, /** * 脚本语言错误可以去Rhino官网学习语法 */ String jsCode = "import(java.util); var cars=new ArrayList([\"一\",\"二\",\"三\"]);"; engine.eval(jsCode); List<String> list2 = (List<String>) engine.get("cars"); for (String str1 : list2) { System.out.println(str1); } // 执行一个js文件 URL url = test.class.getClassLoader().getResource("js文件"); FileReader fr = new FileReader(url.getPath()); engine.eval(fr); fr.close(); } catch (ScriptException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- 学习笔记——JAVA执行javascript
- javascript学习笔记--javascript执行顺序详解
- Java学习笔记——控制执行流程
- Java学习笔记——关于继承执行顺序问题
- Java学习笔记之—Static静态代码块,只执行一次,优先主函数执行。
- javaScript学习笔记——如何在加载完某个标签之后执行一个函数
- JavaScript学习笔记(十四) 立即执行函数
- JavaScript学习笔记(十四) 立即执行函数
- Java并发编程学习——《Java Concurrency in Practice》学习笔记 6.任务执行
- java学习笔记-cmd执行java程序
- Java学习笔记--javascript入门
- 《深入理解java虚拟机》学习笔记——虚拟机字节码执行
- java多线程 学习笔记(二)——线程执行器 Executor
- 《Java编程思想》学习笔记(二)——类加载及执行顺序
- 四.控制执行流程——Java编程思想第4版学习笔记
- JDBC编程学习笔记(二)——执行SQL语句 ExecuteSQL.java
- 【Java学习笔记】类初始化执行顺序
- Java学习笔记4-控制执行流程
- 通过Flume拉取Kafka数据保存到HDFS
- Java注解
- [JAVA学习笔记-85]java的concurrent包的整体认识
- ServletContext与ApplicationContext
- 数据库存储过程学习(一)
- 学习笔记——JAVA执行javascript
- AngularJs的UI组件ui-Bootstrap分享(四)——Datepicker Popup
- Oracle 11G数据库导入导出
- 使用Openssl 创建可以被Torando使用的crt证书以及Key密钥
- [JAVA学习笔记-86]ConcurrentHashMap与synchronizedMap的对比
- 今天重温了Css样式。发现回头已不是从前
- MQ产品比较-ActiveMQ-RocketMQ
- 中国架构师大会:系统架构的迭代与创新
- 腾讯的微信小程序开发环境下常用快捷键汇总