zoukankan      html  css  js  c++  java
  • java中执行javascript案例

    Nashorn js engine官方文档 
    https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/#top 

    java函数输出js的hello world:

    import javax.script.Invocable;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineFactory;
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptException;
    public class Maub {
        public static void main(String args[]) throws ScriptException, NoSuchMethodException{
            //引擎管理器
            ScriptEngineManager m = new ScriptEngineManager();
            //获取引擎
            ScriptEngine engine = m.getEngineByName("JavaScript");
            //执行javascript代码
            engine.eval("function hello(name){print('hello '+name)}");
            //Javascript实现了invocable调用接口
            Invocable inv = (Invocable) engine;
            //调用函数hello,传入world
            inv.invokeFunction("hello","world");
        }
    }
    

    调用文件里的js脚本:

    import java.io.FileNotFoundException;
    import javax.script.Invocable;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineFactory;
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptException;
    public class Maub {
        public static void main(String args[]) throws ScriptException, NoSuchMethodException, FileNotFoundException{//引擎管理器
            ScriptEngineManager m = new ScriptEngineManager();
            //获取引擎
            ScriptEngine engine = m.getEngineByName("JavaScript");
            //执行javascript代码
            engine.eval(new java.io.FileReader("E:\Code\Java\src\getpwd.js"));
            
            Invocable inv = (Invocable) engine;
            String arg[] = {"MDwwDQYJKoZIhvcNAQEBBQADKwAw","fot123456"};
            //使用Invocable调用脚本函数,传入String参数
            System.out.println(inv.invokeFunction("getpwd",arg));
        }
    }
    

      

  • 相关阅读:
    vue Ant Design 树形控件拖动限制
    defineProperty介绍及使用
    webpack 配置入门
    vscode 插件
    解决输入框自动填充账号密码的问题
    css 动画
    vue按钮权限控制
    git操作
    TCP和UDP的区别
    通信协议 HTTP TCP UDP
  • 原文地址:https://www.cnblogs.com/liqiujiong/p/10445868.html
Copyright © 2011-2022 走看看