六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 16|回复: 0

Rhino——一个可以在Java中操作和执行JS的框架

[复制链接]

升级  32%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
16
 楼主| 发表于 2013-2-3 10:32:33 | 显示全部楼层 |阅读模式
前段时间,在浏览javaeye论坛,看见有人征集如何在java中运行数学表达式。
结果方案五花八门:
1.jakarta commons JEXL.
2.Beanshell
3.Java Math Expression Parser jep
4.parse combinator jparsec
5.jdk 6.0的 script
6.利用SQL
7.自己写语法分析
如果自己写语法分析,没有个2000行估计搞不定。有人用sql来运行数学表达式,比较另类。
不过由于前段时间较深入的学习了一些java的javascript引擎,我给出的方案就是用javascript来计算了。
java中比较著名的js引擎当属mozilla开源的rhino,不过jdk6已经把它收归帐下,成了正规军。

<div class="dp-highlighter"><div class="bar">

  • public class MathEval   
  • {   
  •     public static void main(String[] args)   
  •     {   
  •         Context cx = Context.enter();   
  •         try  
  •         {   
  •             Scriptable scope = cx.initStandardObjects();   
  •             String str = "9*(1+2)";   
  •             Object result = cx.evaluateString(scope, str, null, 1, null);   
  •             double res = Context.toNumber(result);   
  •             System.out.println(res);   
  •         }   
  •         finally  
  •         {   
  •             Context.exit();   
  •         }   
  •     }   
  • }  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表