JAVA调用操作javascript (JS)工具类
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
/**
* 用java操作 javascript 工具类。<br/>
* 可以加载网络上的js,或者文件路径下的js,可以调用js文件中的函数。
* @author 朱志杰 QQ:695520848
* May 31, 2013 9:03:17 AM
*/
public class JsUtil {
//js 文件操作对象。
private Invocable inv=null;
/**
* 功能:构造函数。(文件路径)
* @author 朱志杰 QQ:695520848
* May 31, 2013 9:05:22 AM
* @param jsFilePaths 文件路径下的js文件全路径,可以同时传入很多js路径。
* @throws ScriptException 读取js文件异常。
* @throws FileNotFoundException js文件没有找到。
*/
public JsUtil(String... jsFilePaths) throws FileNotFoundException, ScriptException{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByMimeType("text/javascript");
for(String filePath : jsFilePaths){
engine.eval(new FileReader(filePath));
}
inv = (Invocable) engine;
}
/**
* 功能:构造函数。(网络地址)
* @author 朱志杰 QQ:695520848
* May 31, 2013 9:05:22 AM
* @param jsUrl js文件在网络上的全路径,可以同时传入多个JS的URL。
* @throws ScriptException 读取js文件异常。
* @throws IOException 从网路上加载js文件异常。
*/
public JsUtil(URL... jsUrls) throws ScriptException, IOException{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByMimeType("text/javascript");
//从网络读取js文件流
for(URL url: jsUrls){
InputStreamReader isr=new InputStreamReader(url.openStream());
BufferedReader br=new BufferedReader(isr);
engine.eval(br);
}
inv = (Invocable) engine;
}
/**
* 功能:调用js中的顶层程序和函数。
* @param functionName js顶层程序和函数名。
* @author 朱志杰 QQ:695520848
* May 31, 2013 9:38:07 AM
* @return 程序或函数所返回的值
* @throws NoSuchMethodException 如果不存在具有给定名称或匹配参数类型的方法。
* @throws ScriptException 如果在调用方法期间发生错误。
*/
public Object invokeFunction(String functionName,Object... args) throws ScriptException, NoSuchMethodException{
return inv.invokeFunction(functionName,args);
}
}
JAVA调用操作javascript (JS)工具类的更多相关文章
- java之操作集合的工具类--Collections
Collections是一个操作Set.List和Map等集合的工具类. Collections中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控 ...
- Java操作字符串的工具类
操作字符串的工具类 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStre ...
- Java操作图片的工具类
操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...
- java里poi操作excel的工具类(兼容各版本)
转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...
- vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js
vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...
- 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!
转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...
- 分享非常好用的前端分页js工具类 灵活 简单易懂
分享自己封装的前端分页js工具类 下面是默认样式效果截图 可以随意更改js及css 很灵活 /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总 ...
- 操作集合的工具类Collections
1 操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...
- 【转载】C#工具类:实现文件操作File的工具类
在应用程序的开发中,文件操作的使用基本上是必不可少的,FileStream类.StreamWriter类.Directory类.DirectoryInfo类等都是文件操作中时常涉及到的类,我们可以通过 ...
随机推荐
- 【官方文档】《暗黑世界V1.4》API说明!
指令号说明 账号注册 100 { username str 用户名 password str 密码 } 返回信息 { result bool 指令调用是否成功 ...
- MVC3中的路由系统(Routes)
转载:http://blog.csdn.net/francislaw/article/details/7429317 MVC中,用户访问的地址并不映射到服务器中对应的文件,而是映射到对应Control ...
- php抓取页面的几种方法详解
本篇文章是对php抓取页面的几种方法进行了详细的分析介绍,需要的朋友参考下 在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求 ...
- mysql 监控工具monyog使用总结
1. 下载安装 2. 登录之后,查看 locked queries 2. 慢查询
- HDU 5015 233 Matrix
题意:给定一个矩阵的第0列的第1到n个数,第一行第1个数开始每个数分别为233, 2333........,求第n行的第m个数. 分析: 其实也没那么难,自己想了半天还没往对的方向想,m最大1e9,应 ...
- ANDROID_MARS学习笔记_S01原始版_009_SQLite
一.代码1.xml(1)activity_main.xml <?xml version="1.0" encoding="utf-8"?> <L ...
- 【HDOJ】1045 Fire Net
经典深搜.注意满足条件. #include <stdio.h> #include <string.h> #define MAXNUM 5 char map[MAXNUM][MA ...
- common.css 值得学习的css样式布局
正常的项目当中,应当有一个common.css,就是把一些常用的样式,写入其中. 然后再结合一些特性的css,构造漂亮的页面. 下面欣赏一些海盗商城的common.css. /***样式初始化***/ ...
- java常量池概念
在class文件中,“常量池”是最复杂也最值得关注的内容. Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int.long等等)和对象型(如Stri ...
- POJ_2566_Bound_Found_(尺取法+前缀和)
描述 http://poj.org/problem?id=2566 给出一个整数序列,并给出非负整数t,求数列中连续区间和的绝对值最接近k的区间左右端点以及这个区间和的绝对值. Bound Found ...