通过Java调用JavaScript

只有在将计算式注册到数据库中的情况下才会使用。
(只是现在出现了这样的需求而已。。)

import javax.script.Compilable;
import javax.script.CompiledScript;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Test {
    public static void main(String[] args) throws Exception {
        String script = "result=num*2";

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        Compilable ce = (Compilable) engine;
        CompiledScript cs = ce.compile(script);
        engine.put("num", 1);
        cs.eval();
        Object result = engine.get("result");
        if(result != null) {
            System.out.println("result=" + result.toString());
        }
    }
}