• 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

  • 相关阅读:
    HTML5新增的属性和废除的属性
    利用ajax的方式来提交数据到后台数据库及交互功能
    在BS表单上使用fastreport.net
    js获取电子秤串口数据
    XMPP基础
    xmpp简介
    扩展方法
    泛型委托、lambda表达式例子,备忘
    leetcode 127. Word Ladder ----- java
    leetcode 126. Word Ladder II ----- java
  • 原文地址:https://www.cnblogs.com/lhp2012/p/8662164.html
Copyright © 2020-2023  润新知