zoukankan      html  css  js  c++  java
  • Java执行JavaScript代码

    Java执行JavaScript代码

    这篇文章主要为大家详细介绍了Java执行JavaScript代码的具体操作方法,感兴趣的小伙伴们可以参考一下

    我们要在Java中执行JavaScriptMethods.js中的execute(s1,s2)方法,JavaScriptMethods.js文件内容如下:

    function execute(s1, s2){
      return s1 + s2;
    }

    首先需要定义一个接口,这个接口中给出与要执行的JavaScript方法一样的方法签名,我们定义接口Methods,它的内容如下:

    /**
     * 接口中的方法签名必须与要执行的JavaScript方法一致
     * @author yuncong
     *
     */
    public interface Methods {
      public String execute(String s1,String s2);
    }

    然后,就可以用脚本引擎执行JavaScriptMethods.js中execute(s1,s2)方法了,具体内容写在下面的ExecuteScript类中的:

    import java.io.FileReader;
    
    import javax.script.Invocable;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    
    
    public class ExecuteScript {
      public static void main(String[] args) {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        try {
          String path = ExecuteScript.class.getResource("").getPath();
          System.out.println(path);
          // FileReader的参数为所要执行的js文件的路径
          engine.eval(new FileReader(path + "JavaScriptMethods.js"));
          if (engine instanceof Invocable) {
            Invocable invocable = (Invocable) engine;
            Methods executeMethod = invocable.getInterface(Methods.class);
            System.out.println(executeMethod.execute("li", "yuncong"));
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    

    运行ExecuteScript类,输出如下: 

    /C:/Users/yuncong/git/login/target/classes/executescript/ 
    liyuncong
    

    以上就是本文的全部内容,希望对大家的学习有所帮助。

    https://m.jb51.net/article/81577.htm

  • 相关阅读:
    Add source code and doc in maven
    Spring toturial note
    How to add local jar into maven project
    Ubuntu 12.04 下安装 Eclipse
    如何更改linux文件的拥有者及用户组(chown和chgrp)
    20非常有用的Java程序片段
    Java中的Set、List、Map的区别
    Java I/O知识点汇总
    Java I/O流整理
    hadoop2.0集群配置
  • 原文地址:https://www.cnblogs.com/lhp2012/p/8662164.html
Copyright © 2011-2022 走看看