不使用浏览器运行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 数据类型转换(parseInt,parseFloat)
Jul 20 Javascript
js 弹出框 替代浏览器的弹出框
Oct 29 Javascript
JS 修改URL参数(实现代码)
Jul 08 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
可恶的ie8提示缺少id未定义
Mar 20 Javascript
JavaScript函数获取事件源的小例子
May 14 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
JavaScript时间与时间戳的转换操作实例分析
Dec 07 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
Aug 06 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』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
php和html的区别点详细总结
2019/09/24 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
原生JS实现的轮播图功能详解
2018/08/06 Javascript
js实现随机8位验证码
2020/07/24 Javascript
详解javascript void(0)
2020/07/13 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Python正则表达式教程之一:基础篇
2017/03/02 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
python3.6编写的单元测试示例
2019/08/17 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
会计专业求职信范文
2014/03/16 职场文书
销售类求职信
2014/06/13 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
运动会演讲稿300字
2014/08/25 职场文书
可怜妈妈观后感
2015/06/09 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书