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));
    }
}

  

 

相关文章:

  • 2021-08-16
  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2022-02-05
  • 2021-10-09
  • 2021-06-24
猜你喜欢
  • 2021-12-22
  • 2022-03-10
  • 2022-12-23
  • 2021-05-14
  • 2021-06-02
  • 2021-06-28
相关资源
相似解决方案