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

O2O

O2O

张波 / 机械工业出版社华章公司 / 2013-2-5 / 49.00元

2012年是O2O元年,无论是成熟的传统企业、如火如荼的电子商务企业,还是以电信、银行、娱乐等为代表的与民生相关的企业,都在探索和践行O2O模式,因为O2O中孕育着极富创新性的商业模式。本书是国内首部O2O方面的著作,不仅宏观上叙述了O2O的概念、在各行业的应用情况,以及未来的发展趋势,而且还系统阐述和解读了各行业如何借助O2O来顺利实现商业模式的转型和升级;不仅极富洞察力地分析了O2O在营销、支......一起来看看 《O2O》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换