首先在本地添加一个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的方法