JDK 5, JSR223, Rhino, E4X (2)

阅读更多

之前说了一种在JDK 5中使用JSR223,并提供E4X支持的方案,上面的方案需要对Sun自带的jar进行修改,这可能会有版权之类的问题,所以我采用另外的一种方案,就是提供自己的JSR223的JavaScript实现。可以参考的资料有scripting.dev.java.net上面的其它脚本语言的JSR223实现,还有就是Sun的JavaScript的实现的代码,当然是反编译过的。

不过Sun的实现有点复杂,经过我的删减,最后得到了一个实现,我把它注册成名字为e4x。使用时需要JSR223, JSR173的API jar,Rhino的js.jar,xbean.jar,以及我的这个包。使用下面的代码可以测试:

java 代码
  1. ScriptEngineManager sem = new ScriptEngineManager();   
  2. ScriptEngine engine = sem.getEngineByName(”e4x”);   
  3. if (engine != null) {   
  4.   String str = “var order =  alex ;print(order.person);”;   
  5.   try {   
  6.     Object result = engine.eval(str);   
  7.     System.out.println(result);   
  8.   } catch (ScriptException e) {   
  9.     e.printStackTrace();   
  10.   }   
  11. }   

同样,使用Rhino自带的examples下的e4x目录下的e4x_example.js可以正确解释。

限制

只实现了JavaScript的eval,没有binding和Invokable
下载

该引擎的实现下载地址如下: FullRhinoEngine.jar,Eclipse工程

你可能感兴趣的:(JDK,JavaScript,Eclipse,SUN,脚本)