不使用浏览器运行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 加载时自动调整图片大小
May 28 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
Dec 05 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
jQuery增加与删除table列的方法
Mar 01 Javascript
Node.js文件操作方法汇总
Mar 22 Javascript
AngularJs Understanding the Controller Component
Sep 02 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
深入理解vue Render函数
Jul 19 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
vue v-model动态生成详解
Jun 30 Javascript
vue.js 中使用(...)运算符报错的解决方法
Aug 09 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获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
js身份证判断方法支持15位和18位
2014/03/18 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
js图片上传的封装代码
2017/08/01 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
《晏子使楚》教学反思
2014/02/08 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
环境建议书
2015/02/04 职场文书
中班教师个人总结
2015/02/05 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书