不使用浏览器运行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脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
拉动滚动条加载数据的jquery代码
May 03 Javascript
javascript实时显示北京时间的方法
Mar 12 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
用vue和node写的简易购物车实现
Apr 25 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
基于vue 实现token验证的实例代码
Dec 14 Javascript
详解JS模块导入导出
Dec 20 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 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
elgg 获取文件图标地址的方法
2010/03/20 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
jQuery.each使用详解
2015/07/07 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
Python中正则表达式的用法总结
2019/02/22 Python
python基础教程之while循环
2019/08/14 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
股份转让协议书
2014/04/12 职场文书
物流专业求职信
2014/06/30 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
设备技术员岗位职责
2015/04/11 职场文书
营业员岗位职责范本
2015/04/14 职场文书
小学作文之描写天气
2019/08/15 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript
SQL中的连接查询详解
2022/06/21 SQL Server