zoukankan      html  css  js  c++  java
  • java----执行脚本语言代码

    脚本引擎介绍

    -使得Java应用程序可以通过一套固定的接口与各种脚本引擎交互,从而达到在Java平台上调用各种脚本语言的目的。
    -Java脚本API是连通Java平台和脚本语言的桥梁。
    -可以把一些复杂异变的业务逻辑交给脚本语言处理,这又大大提高了开发效率。

    脚本引擎执行javascript使用

    Rhino是一种使用Java 语言编写的JavaScript 的开源实现,原先由Mozilla开发,现在被集成进JDK 6.0。

    1、简单使用

        public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, ScriptException {
            ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
            //实现类是NashornScriptEngine
            ScriptEngine js = scriptEngineManager.getEngineByName("javascript");
            String str = "function add(a,b){return a+b;}";
            js.eval(str);
            Invocable js1 = (Invocable) js;
            Object add = js1.invokeFunction("add", new Object[]{1, 2});
            System.out.println(add);
    
    
            String jsCode = "var list=java.util.Arrays.asList("a","b")";
            //String jsCode = "var list=java.util.Arrays.asList(["a","b"])";
            js.eval(jsCode);
            List<String> list = (List<String>) js.get("list");
            System.out.println(list);
        }

    2、执行js文件脚本

    a.js

    function test() {
        print("test")
    }
    test();
    
        public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, ScriptException {
            InputStream resourceAsStream = Test1.class.getClassLoader().getResourceAsStream("a.js");
            ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
            ScriptEngine js = scriptEngineManager.getEngineByName("javascript");
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(resourceAsStream));
            js.eval(bufferedReader);
            bufferedReader.close();
        }
    

      

  • 相关阅读:
    105.输出控制缓存
    修正IE6中FIXED不能用的办法,转载
    Linux C语言 网络编程(二) server模型
    阿里巴巴实习生面试悲慘经历
    初学JDBC,JDBC工具类的简单封装
    初学JDBC,最简单示例
    判断不同浏览器
    POI读写Excel简述之写入
    POI读写Excel简述之读取
    eclipse中新建javaweb项目,查看某些类的源码
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/11624958.html
Copyright © 2011-2022 走看看