学习笔记——JAVA执行javascript
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相关推荐
- JDBC学习笔记——Java语言与数据库的鹊桥
JDBC学习笔记--Java语言与数据库的鹊桥 JDBC(Java DataBase Connectivity):SUN公司提供的 一套操作数据库的标准规范,说白了就是用Java语言来操作数据 ...
- 学习笔记-Java并发(一)
学习笔记-Java并发(一) 目录 学习笔记-Java并发一 目录 Executer Callable和Future 后台线程 线程加入 小计 今天看了这一篇 Java编程思想-java中的并发(一) ...
- 【学习笔记】Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程、手写 Promise(二、JavaScript 异步编程)
[学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程.手写 Promise(课前准备) [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步 ...
- 深入理解Java虚拟机(第3版)学习笔记——JAVA内存区域(超详细)
深入理解Java虚拟机(第3版)学习笔记--JAVA内存区域(超详细) 运行时数据区域 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 直接内存 对象的创建 对象的内存布局 ...
- java执行JavaScript代码
java执行JavaScript代码的方式有很多,这里讲一下使用 Mozilla 公司开发的 Rhino 实现的,该实现从 1.6开始集成到 jdk里面. 1,对象相互转化 // 获取引擎对象 ...
- 狂神说Java学习笔记 Java基础
目录 机器语言 第二代语言(汇编语言) 第三代语言 高级语言 Java特性和优势 JDK(Java Development Kit) JRE(Java Runtime Enviroment) JVM( ...
- PHP学习笔记-PHP与JavaScript的交互
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51814192 本文出自:[顾林海的博客] 前言 前两篇笔记PHP学习笔 ...
- js学习笔记(执行上下文、闭包、this部分)
1.函数的准备工作 函数在执行会进行一些准备工作,如创建一个"执行上下文"环境:执行上下文可以理解为当前代码的执行环境,它会形成一个作用域: 每个碰到可执行代码的时候都会进行这些& ...
- 狂神说学习笔记 Java流程控制
目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...
最新文章
- 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
- [LeetCode] Wildcard Matching 题解
- iis6.0与asp.net的运行原理
- sphinx使用小记之使用小结
- sql去重、or、in、and、groupby的使用
- Bing 和 Cortana 源码遭泄露,网友嘲讽:其实没人想要
- python多元回归因子选取_Python中的多元回归(带因子选择)
- Atitit 扩大个人影响力和宣传目录1. 发文舆论阵地 11.1. 简书 知乎 csdn等 11.2. Ifttt出发同步 11.3. 问答平台 知乎 quaro 11.4. Tik
- IDEA2019安装教程
- 2007.12.25 2个意外惊喜
- docker run参数-v的rw、ro详解
- 微软云存储SkyDrive API:将你的数据连接到任何应用、任何平台,及任何设备上
- Android Dialog设置宽度显示不正常的问题(自定义设置Dialog的宽高)
- 概率论得学习整理--番外3:二项式定理和 二项式系数
- 快速提高pip安装速度!一劳永逸
- 重庆大学计算机学院课题组,【计算机】计算机学院关于智能计算的大规模优化学术报告圆满结束...
- iOS——调用相册换头像
- ini文件全部写入时换行符号未写入的问题处理
- 丁益祥c语言答案pdf,丁益祥|
- javaweb记账本系统