Java实现对JavaScript脚本文件的读取和执行
2017-12-26 17:07
417 查看
package com.amxc.utils; import javax.script.*; import java.io.FileReader; import java.net.URL; import java.util.Scanner; /** * 实现对脚本文件的定义 * 运用此类需要最低JDK编译为1.6+ * @author mr_yi * 下午3:57 */ public class scriptDemo2 { public static void main(String[] args) throws Exception{ /*mimeType为传输的文件类型,如 application/javascript*/ /*获取执行JavaScript的执行引擎*/ ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript"); /*为文件注入全局变量*/ Bindings bindings = engine.createBindings(); bindings.put("factor", 2); /*设置绑定参数的作用域*/ engine.setBindings(bindings,ScriptContext.ENGINE_SCOPE); Scanner scanner = new Scanner(System.in); /*开始等待用户输入->体现出不需要重复运行JVM就可以实现脚本文件的更换*/ while(scanner.hasNextInt()){ /*只有当用户输入的是整数型时才会被执行*/ int first = scanner.nextInt(); int second = scanner.nextInt(); System.out.println("当前输入的参数为: "+first+":"+second); /*执行js文件代码*/ URL url = Thread.currentThread().getContextClassLoader().getResource(""); String path; if (url!=null){ path = url.getPath(); engine.eval(new FileReader(path+"/script_engine.js")); /*查看是否可以调用方法*/ if (engine instanceof Invocable){ Invocable in = (Invocable) engine; Double result = (double)in.invokeFunction("formula",first,second); System.out.println("输出结果为"+result); } } } } }
script_engine.js文件如下:
/*实现java对脚本语言的支持*/
/**
* 通过java对factor因子进行初始化,然后计算出答案
* 对脚本语言的修改不需要重新启动编译器
* @param var1
* @param var2
* @return {*}
*/
var factor;
function formula(var1,var2){
return var1+var2*factor;
}
该功能实现Java对脚本文件的读取和执行,有助于扩展Java的功能!
相关文章推荐
- 将后台数据读取到前台的EXCEL文件中去,用javascript实现,asp.net,javacript(发一个原创)
- Java实现远程ssh执行shell脚本对文件打包下载
- 用java和JavaScript读取一个JS文件中字符个数的实现
- java 读取文件 和 执行SQL脚本 (支持中文)
- 利用 Ant 的 SQL Task 来实现自己的 Java 执行 SQL 脚本文件的功能
- Java实现文件的读取、写入、复制、修改、移动等操作
- 用java实现print screen,读取位图文件,将位图文件转
- 用javascript实现读取txt文档的脚本
- GridView 72般绝技,Javascript与asp.net 实现Ajax多文件无刷新上传,在ASP.NET中执行URL重写经典方案
- 几种读取属性文件的JAVA实现方式
- 动态创建表格js文件,javascript,Ajax,DHTML动态实现表格的创建,动态读取XML中的文件,读取dom节点的例子。
- 几种读取属性文件的JAVA实现方式
- java实现读取flash的swf文件属性
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库.txt
- 运用ANT地SQL Task来完成自己地Java执行SQL脚本文件地功能
- java实现读取flash的swf文件属性 - zhangjianwxh的专栏 - CSDNBlog
- 实现BIN文件数据读取的TCL脚本分析
- 用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!
- Java实现读取Doxygen查询功能的索引文件。
- 几种读取属性文件的JAVA实现方式(2005年)