java中执行javascript案例

2019-02-27 11:53:25来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

  

 


原文链接:https://www.cnblogs.com/liqiujiong/p/10445868.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java开发笔记(六十五)集合:HashSet和TreeSet

下一篇:Springboot 2.0.x 引入链路跟踪Sleuth及Zipkin