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();}}
}

学习笔记——JAVA执行javascript相关推荐

  1. JDBC学习笔记——Java语言与数据库的鹊桥

    JDBC学习笔记--Java语言与数据库的鹊桥     JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...

  2. 学习笔记-Java并发(一)

    学习笔记-Java并发(一) 目录 学习笔记-Java并发一 目录 Executer Callable和Future 后台线程 线程加入 小计 今天看了这一篇 Java编程思想-java中的并发(一) ...

  3. 【学习笔记】Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程、手写 Promise(二、JavaScript 异步编程)

    [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程.手写 Promise(课前准备) [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步 ...

  4. 深入理解Java虚拟机(第3版)学习笔记——JAVA内存区域(超详细)

    深入理解Java虚拟机(第3版)学习笔记--JAVA内存区域(超详细) 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 对象的创建 对象的内存布局 ...

  5. java执行JavaScript代码

    java执行JavaScript代码的方式有很多,这里讲一下使用 Mozilla 公司开发的 Rhino 实现的,该实现从 1.6开始集成到 jdk里面. 1,对象相互转化 // 获取引擎对象    ...

  6. 狂神说Java学习笔记 Java基础

    目录 机器语言 第二代语言(汇编语言) 第三代语言 高级语言 Java特性和优势 JDK(Java Development Kit) JRE(Java Runtime Enviroment) JVM( ...

  7. PHP学习笔记-PHP与JavaScript的交互

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51814192 本文出自:[顾林海的博客] 前言 前两篇笔记PHP学习笔 ...

  8. js学习笔记(执行上下文、闭包、this部分)

    1.函数的准备工作 函数在执行会进行一些准备工作,如创建一个"执行上下文"环境:执行上下文可以理解为当前代码的执行环境,它会形成一个作用域: 每个碰到可执行代码的时候都会进行这些& ...

  9. 狂神说学习笔记 Java流程控制

    目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...

最新文章

  1. 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
  2. [LeetCode] Wildcard Matching 题解
  3. iis6.0与asp.net的运行原理
  4. sphinx使用小记之使用小结
  5. sql去重、or、in、and、groupby的使用
  6. Bing 和 Cortana 源码遭泄露,网友嘲讽:其实没人想要
  7. python多元回归因子选取_Python中的多元回归(带因子选择)
  8. Atitit 扩大个人影响力和宣传目录1. 发文舆论阵地 11.1. 简书 知乎 csdn等 11.2. Ifttt出发同步 11.3. 问答平台 知乎 quaro 11.4. Tik
  9. IDEA2019安装教程
  10. 2007.12.25 2个意外惊喜
  11. docker run参数-v的rw、ro详解
  12. 微软云存储SkyDrive API:将你的数据连接到任何应用、任何平台,及任何设备上
  13. Android Dialog设置宽度显示不正常的问题(自定义设置Dialog的宽高)
  14. 概率论得学习整理--番外3:二项式定理和 二项式系数
  15. 快速提高pip安装速度!一劳永逸
  16. 重庆大学计算机学院课题组,【计算机】计算机学院关于智能计算的大规模优化学术报告圆满结束...
  17. iOS——调用相册换头像
  18. ini文件全部写入时换行符号未写入的问题处理
  19. 丁益祥c语言答案pdf,丁益祥|
  20. javaweb记账本系统

热门文章

  1. word制作三线表模板,然后批量修改!
  2. 浅层砂过滤器的工作原理
  3. 6、RH850 F1 AD转换功能和配置
  4. ps保存psd后图层全没了_怎么利用ps把psd图层单独导出为一张张的图片?
  5. 某政府部门IBM x3850X5服务器数据丢失的解决过程
  6. 移植zlog到openwrt
  7. arcgis的(添加面)点转线,线转面
  8. 2022低压电工国家题库及模拟考试
  9. 服务器如何安装2012的系统时间,Windows Server 2012开始菜单
  10. 【C++】如何运行C++程序