java中使用js函数
JDK6已经发布很久了,很早就听过他已经支持脚本语言了,不过一直没有时间尝试,今天偷闲试了一下,感觉不错。
javax.script包它是Java新增的操作脚本的工具包,
利用它我们可以对脚本语言进行操作(本例仅是针对javascript
)
1.用引擎直接解析脚本公式
Java代码
//创建脚本引擎管理器
ScriptEngineManager sem = new ScriptEngineManager();
//创建一个处理JavaScript的脚本引擎
ScriptEngine engine = sem.getEngineByExtension("js");
try{
//执行js公式
engine.eval("if(6>5){flag=true;}else{flag =false;}");
}catch(ScriptException ex){
ex.printStackTrace();
}
//看看我们预期的反馈结果 true
System.out.println((engine.get("flag")));
2.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)
Java代码
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("JavaScript");
//创建脚本
String script = "function max(first,second) "
+ "{ return (first > second) ?true:false;}";
//执行脚本
engine.eval(script);
Invocable inv = (Invocable) engine;
//执行方法并传递参数
Object obj = inv.invokeFunction("max", "0", "1");
//打印结果
System.out.println((Boolean)obj==false);
这里据说Invoable很有用,好多高级功能可以用到。
最新文章
- 【Java EE 学习 78 上】【数据采集系统第十天】【Service使用Spring缓存模块】
- Azure PowerShell (4) 使用PowerShell管理多个订阅
- 【转】ACM搜索算法总结 --By GreenHand
- Android中关于Handler的若干思考
- qsort函数详解
- Ferry Loading III[HDU1146]
- JAVA设计模式之门面模式
- Nexus4_屏幕截图目录
- C#中Delegate
- jquery 字符串转json
- Java学习--封装、继承、多态
- 一个用C#实现的虚拟WiFi设置程序
- MYSQL常用简单语句
- Oracle系统表实用操作笔记
- Xshell配色为ubuntu风格
- 交叉编译bash
- iOS开发笔记-一种任意字体、颜色混排UILabel的实现
- The more... the more句型
- <;YARN>;<;MRv2>;<;Spark on YARN>;
- Flex 界面初始化 自定义 预加载 类!