標籤:func 檔案路徑 指定 int cat ade 方法 tac 項目
在做項目中有時候需要用到Java調用js檔案執行相應的方法
在JDK1.6添加了新的ScriptEngine類,允許使用者直接執行js代碼。
import org.junit.Test;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;/** * @author ceshi * @Title: JunitTestJS * @ProjectName ceshi * @Description: java 運行js * @date 2018/7/1016:35 */public class JunitTestJS { @Test public void test(){ ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try{ engine.eval("function add(a,b){" + "return a+b;" + "}"); if (engine instanceof Invocable) { Invocable in = (Invocable) engine; System.out.println(in.invokeFunction("add",1,1)); } }catch(Exception e){ e.printStackTrace(); } }}
ps: engine.eval()也可以讀入js檔案路徑來執行js方法
String jsName = "test.js"; //讀取jsFileReader fileReader = new FileReader(jsName );//執行指定指令碼 engine.eval(fileReader);
Java執行js代碼