在java中使用javaScript脚本编写易变业务逻辑

首先在本地添加一个js文件,我添加的位置是D:\model.js

model.js如下:

function formula(var1,var2){
  return var1+var2 - factor;
}

然后编写java方法如下:

package com.chen;

import javax.script.*;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws FileNotFoundException, ScriptException, NoSuchMethodException {
        //获得一个javascript执行引擎
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
        //建立上下文
        Bindings bindings = engine.createBindings();
        bindings.put("factor",1);
        engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int first = scanner.nextInt();
            int sec = scanner.nextInt();
            System.out.println("输入得参数是:"+first+","+sec);
            engine.eval(new FileReader("D:/model.js"));
            if(engine instanceof Invocable){
                Invocable invocable = (Invocable) engine;
                Double result = (Double) invocable.invokeFunction("formula",first,sec);
                System.out.println("运算结果为"+result.intValue());
            }
        }
    }
}

这样就实现了在java中调用js的方法

Supongo que te gusta

Origin blog.csdn.net/Chen_leilei/article/details/109059417
Recomendado
Clasificación