美文网首页
Java 动态特性三:脚本引擎

Java 动态特性三:脚本引擎

作者: 真海ice | 来源:发表于2018-03-02 12:43 被阅读0次

    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 动态特性三:脚本引擎

          本文链接:https://www.haomeiwen.com/subject/bscaxftx.html