Java 工具包 MyTools

码农软件 · 软件分类 · 常用工具包 · 2019-08-15 18:43:14

软件介绍

该 jar 包对 java 调用 Groovy 、JavaScript、Clojure 脚本语言的接口进行封装,方便在java程序中进行多语言混合编程

在jar中增加对URLClassLoader类进行继承重写实现动态加载和拆卸jar,使用Message类进行jar插件间的解耦调用。

包管理工具采用 Gradle 进行管理

MyTools工具类旧版本git地址 : https://gitee.com/iproject/MyTools.git

MyTools工具类最新版本git地址:https://gitee.com/iproject/MyTools2.git

使用示例:

 

    @Test
    public void testJava() throws Exception {
        JavaHepler jh = new JavaHepler();
        //jh.putPath("Test", "test.Test");
        //IMethod d = jh.newInstance("Test");
        //or
        IMethod d = jh.newInstance("test.Test");
        IInvoke i = d.getMethod("p");
        i.invoke();
        i = d.getMethod("p2");
        i.invoke("MyTools");
    }

    //@Test
    public void javaScript() {
        long b = System.currentTimeMillis();
        String[] s = new String[] { "test/test.js" };
        JSHelper js = new JSHelper(s);
        js.addField("ca").javaToJs(System.out);
        System.out.println(js.getMethod("test").invoke());
        js.exit();
        long e = System.currentTimeMillis();
        System.out.println("js :" + (e - b));
    }

    //@Test
    public void groovy() throws Exception {
        String file = "test/Test.groovy";
        long b = System.currentTimeMillis();
        GroovyHelper gh = new GroovyHelper();
        //gh.putPath("Test", file);
        //gh.newInstance("Test").getMethod("t").invoke();
        //or
        gh.newInstance(file).getMethod("t").invoke();
        long e = System.currentTimeMillis();
        System.out.println("Groovy :" + (e - b));
    }

    //@Test
    public void clojure() throws Exception {
        String file = "test/test_t.clj";
        long b = System.currentTimeMillis();
        ClojureHelper cl = new ClojureHelper();
        //cl.putPath("test", file);
        //IMethod c = cl.newInstance("test");
        //or
        IMethod c = cl.newInstance(file);
        IInvoke i = c.getMethod("t3");
        System.out.println(i.invoke(4));
        long e = System.currentTimeMillis();
        System.out.println("clojure :" + (e - b));
    }

    //@Test
    public void jython() throws Exception {
           String file = "test/Test.py";
        long b = System.currentTimeMillis();
        JythonHelper jy = new JythonHelper();
        //jy.putPath("Test", file);
        //jy.newInstance("Test").getMethod("t").invoke();
        //or
        jy.newInstance(file).getMethod("t").invoke();
        long e = System.currentTimeMillis();
        System.out.println("jython :" + (e - b));
    }

    //@Test
    public void jruby() throws Exception {
        String file = "test/Rr.rb";
        long b = System.currentTimeMillis();
        JRubyHelper jr = new JRubyHelper();
        //jr.putPath("Rr", file);
        //Object obj = jr.newInstance("Rr").getMethod("c2f").invoke(100);
        //or
        Object obj = jr.newInstance(file).getMethod("c2f").invoke(100);
        System.out.println(obj);
        long e = System.currentTimeMillis();
        System.out.println("jruby :" + (e - b));
    }
    
    //@Test
    public void beanShell() throws EvalError, IOException{
        long b = System.currentTimeMillis();
        BeanShellHelper bsh = new BeanShellHelper();
        bsh.getFied("a").set("Hello World");
        bsh.load("test/test.bsh");
        System.out.println(bsh.getFied("b").get());
        long e = System.currentTimeMillis();
        System.out.println("jruby :" + (e - b));
    }

增加对beanShell调用的支持

 

本文地址:https://codercto.com/soft/d/12439.html

写给Web开发人员看的HTML5教程

写给Web开发人员看的HTML5教程

2012-3 / 45.00元

《写给Web开发人员看的HTML5教程》通过结合大量实际案例和源代码对HTML5的重要特性进行了详细讲解,内容全面丰富,易于理解。全书共分为12章,从HTML5的历史故事讲起,涉及了文档结构和语义、智能表单、视频与音频、画布、SVG与MathML、地理定位、Web存储与离线Web应用程序、WebSockets套接字、WebWorker多线程、微数据以及以拖曳为代表的一些全局属性,涵盖了HTML5所......一起来看看 《写给Web开发人员看的HTML5教程》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码