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

  • 相关阅读:
    一点小小的心得
    JavaScript的跳转脚本举例
    如何在Windows Server 2008 R2上开启Windows Power Shell ISE
    如何设置密码输错N次后自动锁住账户?
    IE的local intranet zone里有个URL删不掉, 怎么办?
    理解cookie机制
    ajaxpro.2.dll 简单应用
    cookie概述
    PetShop是如何兼容数据库的.NET教程,数据库应用
    .Net PetShop 4.0的分布式数据库设计.NET教程,.NET Framework
  • 原文地址:https://www.cnblogs.com/lhp2012/p/8662164.html
Copyright © 2011-2022 走看看