Java執(zhí)行JavaScript代碼
我們要在Java中執(zhí)行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件內(nèi)容如下:
function execute(s1, s2){
return s1 + s2;
}
首先需要定義一個接口,這個接口中給出與要執(zhí)行的JavaScript方法一樣的方法簽名,我們定義接口Methods,它的內(nèi)容如下:
/**
* 接口中的方法簽名必須與要執(zhí)行的JavaScript方法一致
* @author yuncong
*
*/
public interface Methods {
public String execute(String s1,String s2);
}
然后,就可以用腳本引擎執(zhí)行JavaScriptMethods.js中execute(s1,s2)方法了,具體內(nèi)容寫在下面的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的參數(shù)為所要執(zhí)行的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();
}
}
}
運(yùn)行ExecuteScript類,輸出如下:
/C:/Users/yuncong/git/login/target/classes/executescript/ liyuncong
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
- java 和 json 對象間轉(zhuǎn)換
- java生成json數(shù)據(jù)示例
- JAVA對象JSON數(shù)據(jù)互相轉(zhuǎn)換的四種常見情況
- jsp中調(diào)用java代碼小結(jié)
- jsp中使用javabean實(shí)例介紹
- JS的encodeURI和java的URLDecoder.decode使用介紹
- Java中使用開源庫JSoup解析HTML文件實(shí)例
- java中實(shí)體類和JSON對象之間相互轉(zhuǎn)化
- Java通過JsApi方式實(shí)現(xiàn)微信支付
- Java中通過jsch來連接遠(yuǎn)程服務(wù)器執(zhí)行l(wèi)inux命令
相關(guān)文章
基于Java實(shí)現(xiàn)互聯(lián)網(wǎng)實(shí)時聊天系統(tǒng)(附源碼)
Netty?是一個利用?Java?的高級網(wǎng)絡(luò)的能力,隱藏其背后的復(fù)雜性而提供一個易于使用的?API?的客戶端/服務(wù)器框架。本文將利用它實(shí)現(xiàn)互聯(lián)網(wǎng)實(shí)時聊天系統(tǒng),感興趣的可以了解一下2022-09-09
Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn)
這篇文章主要介紹了Java 迪杰斯特拉算法實(shí)現(xiàn)查找最短距離的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Java實(shí)現(xiàn)超級實(shí)用的日記本
一個用Java語言編寫的,實(shí)現(xiàn)日記本的基本編輯功能、各篇日記之間的上下翻頁、查詢?nèi)沼泝?nèi)容的程序。全部代碼分享給大家,有需要的小伙伴參考下。2015-05-05

