Java 动态特性三:脚本引擎

java脚本引擎介绍:

  • 使得java应用程序可以通过一定的接口与各种脚本引擎交互,从而达到在java平台上调用各种脚本语言的目的。
  • java脚本API是连通java平台和脚本语言的桥梁。
  • 可以把一些复杂的易变的业务逻辑交给脚本语言处理,提高开发效率。

java脚本引擎有很多,这里以javascript为例。javascript是解释性语言,动态性比较好。

package com.test.script;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

/**
 * java脚本引擎执行javascript代码
 * @author zhb
 *
 */
public class JavaScript {
    
    public static void main(String[] args) throws ScriptException, NoSuchMethodException {
        
        // 获取执行javascript代码的脚本的引擎
        ScriptEngineManager sem = new ScriptEngineManager();
        ScriptEngine engine = sem.getEngineByName("JavaScript");
                
        // 定义变量
        engine.put("msg", "你好");
        Object object = engine.get("msg");
        System.out.println(object);
        // 改变变量的值
        engine.eval("msg = 'Hello'");
        System.out.println(engine.get("msg"));
        
        // 定义一个变量 a
        engine.put("a", 3);
        // 定义一个有变量a的公式
        String str = "a*2+3";
        // 执行
        Object result = engine.eval(str);
        System.out.println(result);     
        
        // 定义函数
        String Strfun = "function add(a, b){ var sum = a+b; return sum;}";
        engine.eval(Strfun);
        // 执行js代码
        Invocable invocable = (Invocable)engine;
        Object jsresult = invocable.invokeFunction("add", 4, 7);
        System.out.println(jsresult);               
    }
        
}

你可能感兴趣的:(Java 动态特性三:脚本引擎)