不使用浏览器运行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 相关文章推荐
JS window.opener返回父页面的应用
Oct 24 Javascript
悬浮数字的实现案例
Feb 19 Javascript
Jquery实现自定义窗口随意的拖拽
Mar 12 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
jquery ztree异步搜索(搜叶子)实践
Feb 25 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
在Vue中使用echarts的方法
Feb 05 Javascript
使用百度地图实现地图网格的示例
Feb 06 Javascript
解决iView中时间控件选择的时间总是少一天的问题
Mar 15 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 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提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP chop()函数讲解
2019/02/11 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
详解python中executemany和序列的使用方法
2017/08/12 Python
Django与JS交互的示例代码
2017/08/23 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
一套带答案的C++笔试题
2014/01/10 面试题
2013年高中生自我评价
2013/10/23 职场文书
优秀毕业生求职推荐信范文
2013/11/21 职场文书
产品开发计划书
2014/04/27 职场文书
暑期学习心得体会
2014/09/02 职场文书
医药销售自我评价200字
2014/09/11 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记