Java執行js代碼


在做項目中有時候需要用到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"; 
//讀取js
FileReader fileReader = new FileReader(jsName );
//執行指定腳本  
engine.eval(fileReader);   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM