不使用浏览器运行javascript代码的方法


Posted in Javascript onJuly 24, 2013

有时候我们想用js写一段小程序,但是又觉得使用浏览器去运行挺麻烦的,那么现在我们来看一下如何使用java程序调用javascript程序,这样就可以不借助浏览器就可执行js代码了。

之所以有这个需求是因为这几天在做的一个项目中碰到了这样的问题,我有一个javascript脚本,但是这个项目的其他代码都是用C\C++写的,不想将js代码转成C,感觉太麻烦了,所以就想如果可以在C下面直接调用javascript代码就好了,或者在shell中有一个可以不借助浏览器就可以直接运行js代码的工具也行。现在可以使用java代码调用javascript代码也行吧,可以写一个shell 脚本封装一下就可以直接在shell下面运行js代码了。

首先如果要安装好java。

java代码如下:

import java.io.FileReader; 
import javax.script.ScriptEngine; 
import javax.script.ScriptEngineManager; 
public class RunScriptFile { 
public static void main(String[] args) { 
ScriptEngineManager manager = new ScriptEngineManager(); 
ScriptEngine engine = manager.getEngineByName("js"); 
try { 
FileReader reader = new FileReader("testFile.js"); 
engine.eval(reader); 
reader.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
}

例如要运行的js代码如下:

function add(a, b) { 
c = a + b; 
return c; 
} 
result = add (10, 5); 
print ('Result = ' + result);

然后在shell中运行:

javac RunScriptFile.java
java RunScriptFile

生成结果如下:

Result = 15

Javascript 相关文章推荐
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
html向js方法传递参数具体实现
Aug 08 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
Oct 17 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
react native 原生模块桥接的简单说明小结
Feb 26 Javascript
npm ci命令的基本使用方法
Sep 20 Javascript
js展开闭合效果演示代码
Jul 24 #Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 #Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 #Javascript
js实现倒计时(距离结束还有)示例代码
Jul 24 #Javascript
javascript中比较字符串是否相等的方法
Jul 23 #Javascript
js改变img标签的src属性在IE下没反应的解决方法
Jul 23 #Javascript
js如何实现设计模式中的模板方法
Jul 23 #Javascript
You might like
php的memcached客户端memcached
2011/06/14 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
javascript hashtable实现代码
2009/10/13 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
Node.js简单入门前传
2017/08/21 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
python 测试实现方法
2008/12/24 Python
java直接调用python脚本的例子
2014/02/16 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
学习python的前途 python挣钱
2019/02/27 Python
Python实战之制作天气查询软件
2019/05/14 Python
python安装pil库方法及代码
2019/06/25 Python
学习Django知识点分享
2019/09/11 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
模具专业毕业生自荐书范文
2014/02/19 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
综合实践活动报告
2015/02/05 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书