Java 工具包 MyTools

GPLv3
Java
跨平台
2015-10-15
独特程序

该 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调用的支持

 

的码云指数为
超过 的项目
加载中

评论(1)

MartinBockZhu
MartinBockZhu
mark #MyTools#

暂无资讯

暂无问答

php扩展开发-数组处理(一)

要在PHP扩展中处理数组类型参数,首先要了解以下ZEND API: Z_TYPE_PP() //获取数据类型 zend_hash_internal_pointer_reset_ex();//初始化hash指针 zend_hash_get_current_data_ex() //获取当...

2013/10/17 10:58
462
1
php扩展开发-正则表达式

正则表达式PHPAPI是在PCRE的基础上封装了一层,调用起来更加方便。在PHP扩展中调用正则表达式PHPAPI时,首先确认扩展目录下有pcre这个目录。其次在c文件开头加载php_pcre.h头文件。 使用正则...

2013/10/22 11:03
121
1
抓包工具

MAC抓包 https://blog.csdn.net/jiangwei0910410003/article/details/41620363 去30天有效 https://www.zzzmode.com/mytools/charles/......

2019/06/12 17:37
11
0
charles抓包工具在线破解

charles 介绍 charles 是一款非常好用的http抓包工具,本人多用于手机代理抓取手机的http请求信息。 在线破解地址 https://tools.zzzmode.com/mytools/charles/ 具体操作流程网址中有记录......

2019/08/21 10:39
45
0
Charles —— 抓包调试利器

Charles的主要功能: 支持SSL代理。可以截取分析SSL的请求。 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。...

2018/03/16 14:40
34
0
项目管理工具总结

项目代码管理工具 github gitlab(https://about.gitlab.com/downloads/) gitlab centos 上安装gitlab(https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos) 项目进度管...

2016/05/11 19:57
612
3
Jupyter Notebooks的安装和使用介绍

最近又开始重新学习Python,学习中使用到了一款编辑器Jupyter Notebooks ,非常想安利给初学python的同学。 注:本文内容仅针对windows环境下安装和配置Jupyter Notebooks 。 1.Jupyter Note...

2019/07/10 17:13
67
0
centos7安装Nginx

安装所需环境 一. gcc 安装 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc-c++ 二. PCRE pcre-devel 安装 PCRE(Perl Co...

2018/10/23 15:14
4
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部