[Java] JarDir →→→→→进入此内容的聊天室

来自 , 2020-09-08, 写在 Java, 查看 112 次.
URL http://www.code666.cn/view/556f3919
  1. import java.io.*;
  2. import java.lang.reflect.Method;
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5. import java.net.URLClassLoader;
  6.  
  7. import java.util.*;
  8.  
  9. import java.util.jar.*;
  10.  
  11. public class JarDir {
  12.  
  13.         public static void main(String args[])
  14.  
  15.         throws IOException, ClassNotFoundException {
  16.  
  17.                 /*
  18.                  * if (args.length != 1) {
  19.                  *
  20.                  * System.out.println("Please   provide   a   JAR   filename");
  21.                  *
  22.                  * System.exit(-1);
  23.                  *
  24.                  * }
  25.                  */
  26.                 JarFile jarFile = new JarFile(
  27.                                 "D:\\cyproject\\fileOption\\WebRoot\\WEB-INF\\lib\\bsh.jar");
  28.                 Enumeration enumjar = jarFile.entries();
  29.                 while (enumjar.hasMoreElements()) {
  30.                         process(enumjar.nextElement());
  31.                 }
  32.  
  33.         }
  34.  
  35.         private static String returnTypeName(String cname) {
  36.                 String classname = cname.substring(cname.lastIndexOf("."),
  37.                                 cname.length());
  38.                 return classname;
  39.         }
  40.  
  41.         private static void process(Object obj) throws ClassNotFoundException,
  42.                         MalformedURLException {
  43.  
  44.                 JarEntry entry = (JarEntry) obj;
  45.                 String name = entry.getName();
  46.                 String classname = name.replace("/", ".");
  47.                 String typename = returnTypeName(classname);
  48.                 classname = classname.substring(0, classname.lastIndexOf("."));
  49.                 File file = new File(
  50.                                 "D:\\cyproject\\fileOption\\WebRoot\\WEB-INF\\lib\\bsh.jar");
  51.                 URL url = file.toURL();
  52.                 URL[] urls = { url };
  53.  
  54.                 if (typename != null && typename.equals("") == false
  55.                                 && (typename.equals(".class") || (typename.equals(".CLASS")))) {
  56.  
  57.                         // 实例化一个对象
  58.                         // loader.loadClass(classpath).newInstance();
  59.                         System.out.println();
  60.                         System.out.println("==================this is The " + classname
  61.                                         + "'s methods====================");
  62.  
  63.                         if (classname.equals("bsh.util.BeanShellBSFEngine")) {
  64.                                 ClassLoader loader = new URLClassLoader(urls);
  65.                                 Class cla = loader.loadClass(classname);
  66.                                 Method[] method = cla.getDeclaredMethods();
  67.                                 if (method.length > 0) {
  68.                                         for (int j = 0; j < method.length; j++) {
  69.                                                 System.out.println(method[j].toString());
  70.                                         }
  71.                                 }
  72.                         } else {
  73.                                 ClassLoader loader = new URLClassLoader(urls);
  74.                                 Class cla = loader.loadClass(classname);
  75.                                 Method[] method = cla.getDeclaredMethods();
  76.                                 if (method.length > 0) {
  77.                                         for (int j = 0; j < method.length; j++) {
  78.                                                 System.out.println(method[j].toString());
  79.                                         }
  80.                                 }
  81.                         }
  82.                 }
  83.  
  84.                 // System.out.println("The type of class is :"+typename);
  85.  
  86.                 long size = entry.getSize();
  87.  
  88.                 long compressedSize = entry.getCompressedSize();
  89.  
  90.                 // System.out.println(classname + "\t" + size + "\t" + compressedSize);
  91.  
  92.         }
  93.  
  94. }

回复 "JarDir"

这儿你可以回复上面这条便签

captcha