一、JAVA脚本引擎

Rhino 是一种使用 Java 语言编写的 JavaScript 的开源实现,原先由Mozilla开发,现在被集成进入JDK 6.0; 让JAVA的动态性得到更充分的体现,某些时候可以更加灵活的应对需求的变化。


二、脚本引擎描述

使得 Java 应用程序可以通过一套固定的接口与各种 脚本引擎 交互,从而达到在 Java 平台上调用各种脚本语言的 目的 。Java 脚本 API 是连通 Java平台和 脚本语言 的 桥梁 。可以把一些复杂异变的业务逻辑交给脚本语言处理,提高了开发效率。Java可以使用各种不同的实现,从而通用的调用jsgroovypython 等脚本;最终实现脚本语言与java语言的数据交换。


三、API讲解

在线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