不使用浏览器运行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 相关文章推荐
JavaScript 给汉字排序实例代码
Jun 28 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
AngularJS仿苹果滑屏删除控件
Jan 18 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
Oct 12 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
实例讲解JavaScript 计时事件
Jul 04 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,js双版本
2012/09/25 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
[原创]pip和pygal的安装实例教程
2017/12/07 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python应用文件读取与登录注册功能
2019/09/23 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python_mask_array的用法
2020/02/18 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
公司总经理任命书
2014/06/05 职场文书
文明好少年事迹材料
2014/08/19 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL