Java執行JavaScript代碼
這篇文章主要為大家詳細介紹了Java執行JavaScript代碼的具體操作方法,感興趣的小伙伴們可以參考一下
我們要在Java中執行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件內容如下:
function execute(s1, s2){
return s1 + s2;
}
首先需要定義一個接口,這個接口中給出與要執行的JavaScript方法一樣的方法簽名,我們定義接口Methods,它的內容如下:
/**
* 接口中的方法簽名必須與要執行的JavaScript方法一致
* @author yuncong
*
*/
public interface Methods {
public String execute(String s1,String s2);
}
然后,就可以用腳本引擎執行JavaScriptMethods.js中execute(s1,s2)方法了,具體內容寫在下面的ExecuteScript類中的:
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class ExecuteScript {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
String path = ExecuteScript.class.getResource("").getPath();
System.out.println(path);
// FileReader的參數為所要執行的js文件的路徑
engine.eval(new FileReader(path + "JavaScriptMethods.js"));
if (engine instanceof Invocable) {
Invocable invocable = (Invocable) engine;
Methods executeMethod = invocable.getInterface(Methods.class);
System.out.println(executeMethod.execute("li", "yuncong"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
運行ExecuteScript類,輸出如下:
/C:/Users/yuncong/git/login/target/classes/executescript/ liyuncong
以上就是本文的全部內容,希望對大家的學習有所幫助。
https://m.jb51.net/article/81577.htm
