欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java執(zhí)行JavaScript代碼

 更新時(shí)間:2016年03月27日 17:26:48   作者:云聰  
這篇文章主要為大家詳細(xì)介紹了Java執(zhí)行JavaScript代碼的具體操作方法,感興趣的小伙伴們可以參考一下

我們要在Java中執(zhí)行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件內(nèi)容如下:

function execute(s1, s2){
  return s1 + s2;
}

首先需要定義一個(gè)接口,這個(gè)接口中給出與要執(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)容寫(xiě)在下面的ExecuteScript類(lèi)中的:

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類(lèi),輸出如下:

/C:/Users/yuncong/git/login/target/classes/executescript/ 
liyuncong

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評(píng)論