chinese.darren 发表于 2013-2-3 10:32:33

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

前段时间,在浏览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();   
[*]        }   
[*]    }   
[*]}  
页: [1]
查看完整版本: Rhino——一个可以在Java中操作和执行JS的框架