一、JAVA脚本引擎
Rhino
是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0; 让JAVA的动态性得到更充分的体现,某些时候可以更加灵活的应对需求的变化。
二、脚本引擎描述
使得 Java 应用程序可以通过一套固定的接口与各种 脚本引擎 交互,从而达到在 Java 平台上调用各种脚本语言的 目的 。Java 脚本 API
是连通 Java
平台和 脚本语言
的 桥梁 。可以把一些复杂异变的业务逻辑交给脚本语言处理,提高了开发效率。Java
可以使用各种不同的实现,从而通用的调用js
、 groovy
、python
等脚本;最终实现脚本语言与java语言的数据交换。
三、API讲解
在线API
//获得脚本引擎
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("javascript");
ScriptEngine 中的接口方法
API | 描述 |
| 设置 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