JarDir.java

import   java.io.*; 
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
  
  import   java.util.*; 
  
import   java.util.jar.*; 
  
  
  public   class   JarDir   { 
  
  public   static   void   main   (String   args[])   
  
  throws   IOException, ClassNotFoundException   { 
  
  /*if   (args.length   !=   1)   { 
  
  System.out.println("Please   provide   a   JAR   filename"); 
  
  System.exit(-1); 
  
  }  */
  
  JarFile   jarFile   =   new   JarFile("D:\\cyproject\\fileOption\\WebRoot\\WEB-INF\\lib\\bsh.jar"); 
  
  Enumeration   enumjar   =   jarFile.entries(); 
  
  while   (enumjar.hasMoreElements())   { 
  
  process(enumjar.nextElement()); 
  
  } 
  
  } 
 
  private static String returnTypeName(String cname){
   String classname = cname.substring(cname.lastIndexOf("."),cname.length());
   return classname;
  }
  
  
  private   static   void   process(Object   obj) throws ClassNotFoundException, MalformedURLException   { 
  
  JarEntry   entry   =   (JarEntry)obj; 
  
  String   name   =   entry.getName(); 
 
  String classname = name.replace("/", ".");
 
  String typename = returnTypeName(classname);
 
  classname = classname.substring(0,classname.lastIndexOf("."));
 
  File file = new File("D:\\cyproject\\fileOption\\WebRoot\\WEB-INF\\lib\\bsh.jar");
  URL url = file.toURL();
  URL[] urls = {url};
 
  if(typename!=null&&typename.equals("")==false&&(typename.equals(".class")||(typename.equals(".CLASS")))){
  
  
   // 实例化一个对象
  // loader.loadClass(classpath).newInstance();
   System.out.println();
   System.out.println("==================this is The "+classname+"'s methods====================");
 
  if(classname.equals("bsh.util.BeanShellBSFEngine")){
   ClassLoader loader = new URLClassLoader(urls);
   Class cla = loader.loadClass(classname);
   Method[] method = cla.getDeclaredMethods();
   if(method.length>0){
    for(int j = 0;j < method.length;j++){
     System.out.println(method[j].toString());
    }
   }
  }else{
   ClassLoader loader = new URLClassLoader(urls);
   Class cla = loader.loadClass(classname);
   Method[] method = cla.getDeclaredMethods();
   if(method.length>0){
    for(int j = 0;j < method.length;j++){
     System.out.println(method[j].toString());
    }
   }
  }
  }
 
  //System.out.println("The type of class is :"+typename);
 
 
 
  
  long   size   =   entry.getSize(); 
  
  long   compressedSize   =   entry.getCompressedSize(); 
  
  //System.out.println(classname   +   "\t"   +   size   +   "\t"   +   compressedSize); 
  
  } 
  
  }  

你可能感兴趣的:(java,职场,休闲,JarDir)