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);               
    }
        
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容