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);   
  • 相关阅读:
    Linux rcp命令详解
    Linux patch命令详解
    Linux paste命令详解
    linux od命令详解
    linux mv命令详解
    Linux more命令详解
    Linux mktemp命令
    MySQL状态变量详解
    mysql性能分析show profile/show profiles
    MySQL执行计划
  • 原文地址:https://www.cnblogs.com/qinxu/p/9291032.html
Copyright © 2011-2022 走看看