当前位置: 首页 > 工具软件 > JS2Java RPC > 使用案例 >

js 调用java工具类_JAVA调用操作javascript (JS)工具类

高宇定
2023-12-01

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 工具类。

* 可以加载网络上的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之操作集合的工具类--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类等都是文件操作中时常涉及到的类,我们可以通过 ...

随机推荐

error: RPC failed; result=22, HTTP code = 411

git config http.postBuffer 524288000orgit config --system http.postBuffer 524288000

Openfire重新安装

由于忘记密码等原因,无法启动openfire ,那就重装吧,废话不多说,命令行按步骤粘贴执行就好了. 1.先删除mysql数据 mysql -u root -p 输入密码:例如,123456 show ...

ubuntu nginx 安装以及配置文件详解

1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...

php final static const成员属性用法

http://www.111cn.net/phper/php/38976.htm 首先来说说final 1.final不能用来修饰成员属性 2.final只能修饰类和方法 作用:被修饰的类不能被子类所 ...

cocos2d(3.0)一些基础的东西

1.创建项目后环境配置: 附加文件夹:加入 $(EngineRoot) $(EngineRoot)cocos $(EngineRoot)cocos\editor-support $(EngineRoo ...

函数声明 和 var声明的优先级

function demo() { console.log(5) } var demo = function(){ console.log(4) } console.log(demo()) var d ...

Java 单字节、多字节读取文本文档中的内容

文本文档位于工程下. 鼠标右击工程,选择“new - File”,即可创建. 文本文档的格式:GBK 单字节读取 import java.io.File; import java.io.FileInp ...

教程:Spagobi开源BI系统 Console报表设计教程

Console Designer 1 Console Designer Console Designer 1.1 Introduction 1.2 Dataset Tab 1.3 Summary Pa ...

httpstat的简单使用

httpstat 应该是一个 python 封装后的 curl 工具能够展现 一些客户端连接网站的时间消耗,最近在看tls 感觉挺有用处的 简单学习一下 1. centos7 安装python 和 p ...

js 判断iframe是否加载完毕

js 判断iframe是否加载完毕 CreationTime--2018年9月13日15点30分 Author:Marydon 1.javascript实现 window.onload = fun ...

 类似资料: