zoukankan      html  css  js  c++  java
  • java执行脚本文件

    JDK8中新添加了ScriptEngineManager类用于调用脚本文件

    ScriptEngineManager类常用方法

    • getEngineByExtension(String extension) 查找并创建一个ScriptEngine一个给定扩展
    • getEngineByName(String shortName) 查找并为给定的名称创建一个 ScriptEngine 。
    • put(String key, Object value) 方法在全局范围中设置指定的键/值对。
    • get(String key) 获取全局范围中指定键的值。

    ScriptEngine接口常用方法

    • eval(Reader reader)eval(String)相同,只是脚本的来源以 Reader形式提供
    • Object eval(String script) 执行指定的脚本。
    • get(String key) 检索在此引擎状态下设置的值。
    • put(String key, Object value) 在ScriptEngine的状态下设置一个键/值对,可以创建一个Java语言绑定,以便在执行脚本时使用,或者以某种其他方式使用,具体取决于该键是否被保留。

    代码示例

    public void hello() throws Exception{
            ScriptEngineManager manager = new ScriptEngineManager();
            //JavaScript可以简写为js
            ScriptEngine engine = manager.getEngineByName("JavaScript");
            //也可以采用ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
            //jdk8对ES6的支持 ScriptEngine engine = new NashornScriptEngineFactory().getScriptEngine("--language=es6");
            engine.eval("print('hello word!!')");
        }
    

    hello.js脚本文件

    print(hello);//支持print()打印
    
    public void hello() throws Exception {    
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");    
        String script = FileCopyUtils.copyToString(new  FileReader("hello.js"));    
        String hello = "hello word!";    
        engine.put("hello", hello);   
        engine.eval(script);
        }
    
  • 相关阅读:
    nginx文件类型错误解析漏洞
    js 获取URL中的参数并转换为对象
    postman
    php curl参数详解
    php 两变量值互换 方法
    PHP 命名空间与spl_autoload_register() 自动加载机制
    php命名大小问题
    PHP实现冒泡排序
    使用 PHPStorm + Xdebug 实现断点调试(二)
    TSPL学习笔记(2):过程和变量绑定
  • 原文地址:https://www.cnblogs.com/lingdu9527/p/11857918.html
Copyright © 2011-2022 走看看