加载jar文件输出class和method
package file import java.util.jar.JarEntry
import java.util.jar.JarFile import org.junit.Test; class ReadJarFileTest01 { @Test
void test001(){
String default_path = "D:/tools/struts-2.3.16/lib/commons-lang-2.4.jar"; URL[] urls = new URL[1]
urls[0] = new URL("file:" + default_path)
ClassLoader parentclassloader = Thread.currentThread().getContextClassLoader()
//URLClassLoader classLoader = new URLClassLoader(urls, parentclassloader)
URLClassLoader classLoader = new URLClassLoader(urls)
Map<String,List<String>> classMethodMap = new LinkedHashMap<String,List<String>>()
JarFile jarfile = new JarFile(default_path)
for(JarEntry entry : jarfile.entries()){
def ename = entry.getName()
if( ename.contains(".class") ){
List<String> methods = new ArrayList<String>()
classMethodMap.put(ename.substring(ename.lastIndexOf("/"), ename.lastIndexOf(".")), methods) def wholeClassName = ename.replaceAll("/", ".")
wholeClassName = wholeClassName.substring(0, wholeClassName.lastIndexOf("."))
//println wholeClassName
if( wholeClassName.contains("ArrayUtils") ){
Class clazz = classLoader.loadClass(wholeClassName)
println clazz.getPackage().getName()
java.lang.reflect.Method[] methodArr = clazz.getMethods()
println "================="
for( p in methodArr ){
println p
}
}
}
}
} }
加载jar文件输出class和method的更多相关文章
- Java加载jar文件并调用jar文件当中有参数和返回值的方法
在工作当中经常遇到反编译后的jar文件,并要传入参数了解其中的某些方法的输出,想到Java里面的反射可以实现加载jar文件并调用其中的方法来达到自己的目的.就写了个Demo代码. 以下的类可以编译生成 ...
- Java_Java中动态加载jar文件和class文件
转自:http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下 ...
- [转载] Java中动态加载jar文件和class文件
转载自http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下 ...
- java动态加载jar文件
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, Invo ...
- Java动态加载jar及class文件
经常碰到需要动态加载jar及class文件的场景.Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 一.动态加载ja ...
- 【Android】Android动态加载Jar、APK的实现
本文介绍Android中动态加载Jar.APK的实现.而主要用到的就是DexClassLoader这个类.大家都知道Android和普通的Java虚拟机有差别,它只能加载经过处理的dex文件.而加载这 ...
- java加载外部文件数据到代码中:外部数据文件放到jar包中,调用方法getResourceAsStream
任务要将数据文件geo.txt加载进行.因为是别人写的总体项目,不能乱动位置.只能将geo.txt打包到jar中某目录.比如,放到.class文件下怎么加载:http://riddickbryant. ...
- JVM加载class文件的原理机制(转)
JVM加载class文件的原理机制 1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中 2.java中的 ...
- Android动态加载jar、apk的实现
前段时间到阿里巴巴参加支付宝技术分享沙龙,看到支付宝在Android使用插件化的技术,挺好奇的.正好这几天看到了农民伯伯的相关文章,因此简单整理了下,有什么错误希望大神指正. 核心类 1.1 ...
随机推荐
- 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程07:UI》
概述: UI即User Interface(用户界面)的简称.UI设计是指对软件的燃机交互.操作逻辑.界面美观的整体设计.好的UI设计不仅可以让游戏变得更有品位,更吸引玩家,还能充分体现开发者对游戏整 ...
- CF_216_Div_2
比赛链接:http://codeforces.com/contest/369 369C - Valera and Elections: 这是一个树上问题,用深搜,最开始贪心想得是只加叶子节点,找到一个 ...
- 数据库概述、mysql-5.7.11-winx64.zip 的下载、安装、配置和使用(windows里安装)图文详解
本博文的主要内容有 .数据库的概述 .mysql-5.7.11-winx64.zip 的下载 .mysql-5.7.11-winx64.zip 的安装 .mysql-5.7.11-winx64. ...
- go语言与所谓的包
import后面接的是目录的名字,而不是所谓包的名字,并且如果一个目录下面还有目录的话都必须要写进去,比如: import "MyPackage" import "MyP ...
- 说一说window.parent
<iframe>标签是很常用的,嵌在页面之中,可以做独立的加载和刷新.比如说,页面分左右或者上下结构,一般左侧和上侧是导航部分,右侧和下侧是目标页面的展示部分,只需要设置导航链接的targ ...
- java.util.Map按照key值合并的value的Collection 集合中。
用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMa ...
- 10409 - Die Game
Problem G: Die Game Life is not easy. Sometimes it is beyond your control. Now, as contestants of AC ...
- 统一建模语言(UML) 版本 2.0
原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UM ...
- jQuery EasyUI, datagrid, treegrid formatter 参数比较 row index
如题: datagrid中,见官方文档: formatter function The cell formatter function, take three parameter:value: the ...
- 《编程导论(Java)·2.1.3改写(override)》
<编程导论(Java)·2.1.3改写(override)>,收集override内容. 方法改写(method overriding)是指对于父类定义的一个实例方法,同意子类提供自己的实 ...