zoukankan      html  css  js  c++  java
  • 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);   
  • 相关阅读:
    XMPP核心协议客户端
    平安中国
    读写XML的API们
    IM只是可以用来玩的东西
    再骂自己一句
    淡定
    自己打造SAX和DOM Parser
    Nickel Instant Messeging System
    XMPP RFC阅读笔记(二)
    think in java 笔记
  • 原文地址:https://www.cnblogs.com/qinxu/p/9291032.html
Copyright © 2011-2022 走看看