要在java中執行js代碼,首先明白,java不支持瀏覽器本身的方法。支持自定義的js方法,否則會報錯
先新建一個js文件:jsss.js
內容如下:
function aa(a,b){ return a+b; }
然后在java中寫代碼:
public class ZipTest { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); String jsFileName="G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js"; FileReader reader = new FileReader(jsFileName); // 執行指定腳本 engine.eval(reader); if(engine instanceof Invocable) { Invocable invoke = (Invocable)engine; // 調用merge方法,並傳入兩個參數 Double c = (Double)invoke.invokeFunction("aa", 2, 3); //調用了js的aa方法 System.out.println(c); } // engine.eval("alert(\"js alert\");"); // 不能調用瀏覽器中定義的js函數 // 錯誤,會拋出alert引用不 } }
最后運行的結果為5.0