java中執行javascript案例


Nashorn js engine官方文檔 
https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/#top 

 

java函數輸出js的hello world:

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Maub {
    public static void main(String args[]) throws ScriptException, NoSuchMethodException{
        //引擎管理器
        ScriptEngineManager m = new ScriptEngineManager();
        //獲取引擎
        ScriptEngine engine = m.getEngineByName("JavaScript");
        //執行javascript代碼
        engine.eval("function hello(name){print('hello '+name)}");
        //Javascript實現了invocable調用接口
        Invocable inv = (Invocable) engine;
        //調用函數hello,傳入world
        inv.invokeFunction("hello","world");
    }
}

調用文件里的js腳本:

import java.io.FileNotFoundException;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Maub {
    public static void main(String args[]) throws ScriptException, NoSuchMethodException, FileNotFoundException{//引擎管理器
        ScriptEngineManager m = new ScriptEngineManager();
        //獲取引擎
        ScriptEngine engine = m.getEngineByName("JavaScript");
        //執行javascript代碼
        engine.eval(new java.io.FileReader("E:\\Code\\Java\\src\\getpwd.js"));
        
        Invocable inv = (Invocable) engine;
        String arg[] = {"MDwwDQYJKoZIhvcNAQEBBQADKwAw","fot123456"};
        //使用Invocable調用腳本函數,傳入String參數
        System.out.println(inv.invokeFunction("getpwd",arg));
    }
}

  

 


免責聲明!

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



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