java脚本引擎Rhino 入门
一、JAVA脚本引擎Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0; 让JAVA的动态性得到更充分的体现,某些时候可以更加灵活的应对需求的变化。二、脚本引擎描述使得 Java 应用程序可以通过一套固定的接口与各种 脚本引擎 交互,从而达到在 Java 平台上调用各种脚本语言的 目的 。J...
·
一、JAVA脚本引擎
Rhino是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0; 让JAVA的动态性得到更充分的体现,某些时候可以更加灵活的应对需求的变化。
二、脚本引擎描述
使得 Java 应用程序可以通过一套固定的接口与各种 脚本引擎 交互,从而达到在 Java 平台上调用各种脚本语言的 目的 。Java 脚本 API 是连通 Java平台和 脚本语言 的 桥梁 。可以把一些复杂异变的业务逻辑交给脚本语言处理,提高了开发效率。Java可以使用各种不同的实现,从而通用的调用js 、 groovy、python 等脚本;最终实现脚本语言与java语言的数据交换。
三、API讲解
//获得脚本引擎
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("javascript");
ScriptEngine 中的接口方法
| API | 描述 |
|---|---|
put(String key, Object value) |
设置 ScriptEngine 的状态中的键/值对 |
| eval(…) | 执行脚本 |
四、案例
package myRhino;
import java.io.FileNotFoundException;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
/**
* Rhiro测试
*/
public class MyRhino {
public static void main(String[] args) throws ScriptException, NoSuchMethodException, FileNotFoundException {
//获得脚本引擎
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("javascript");
// 定义函数
engine.eval("function add (a, b) {var sum = a + b; return sum; }");
// 取得调用接口
Invocable jsInvoke = (Invocable) engine;
//执行脚本中定义的方法
Object result1 = jsInvoke.invokeFunction("add", new Object[] { 13, 20 });
System.out.println(result1);
}
}
后记
如果需要更深入了解,关注 Rhino
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)