不使用浏览器运行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调用WebService的示例
Apr 07 Javascript
js解析与序列化json数据(三)json的解析探讨
Feb 01 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 Javascript
EasyUI创建人员树的实例代码
Sep 15 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
jfinal与bootstrap的登出实战详解
Nov 27 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
Vue按时间段查询数据组件使用详解
Aug 21 Javascript
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
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
在线增减.htpasswd内的用户
2006/10/09 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python进阶教程之异常处理
2014/08/30 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Django中间件基础用法详解
2019/07/18 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
机械设计专业应届生求职信
2013/11/21 职场文书
狼和鹿教学反思
2014/02/05 职场文书
行政助理的岗位职责
2014/02/18 职场文书
项目投资建议书
2014/05/16 职场文书
初中体育教学随笔
2015/08/15 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电