不使用浏览器运行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继承的实现
Oct 24 Javascript
对YUI扩展的Gird组件 Part-2
Mar 10 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
JS动画定时器知识总结
Mar 23 Javascript
uni-app之APP和小程序微信授权方法
May 09 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
js实现转动骰子模型
Oct 24 Javascript
移动端JS实现拖拽两种方法解析
Oct 12 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 8小时时间差的解决方法小结
2009/12/22 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
php技巧小结【推荐】
2017/01/19 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
毕业生自我鉴定
2013/11/05 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python