zoukankan      html  css  js  c++  java
  • 加载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
    					}
    				}
    			}
    		}
    	}
    	
    }
    

      

  • 相关阅读:
    k8s官网 基础知识入门教程
    Mac安装minikube
    docker下创建crontab定时任务失败
    docker save提示no space left on device错误
    cx_Oracle读写clob
    Ossec添加Agent端流程总结
    ossec变更alert等级及配置邮件预警
    linux安全配置检查脚本_v0.5
    linux命令返回值的妙用
    Shell脚本判断内容为None的方式
  • 原文地址:https://www.cnblogs.com/juedui0769/p/3989581.html
Copyright © 2011-2022 走看看