KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hammurapi > inspectors > metrics > ListAllLoadedClasses


1 /*
2  * Created on Dec 9, 2004
3  *
4  */

5 package org.hammurapi.inspectors.metrics;
6
7 import java.net.URLClassLoader JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import java.util.Vector JavaDoc;
10
11 /**
12  * @author 111001082
13  *
14   */

15
16
17 public class ListAllLoadedClasses {
18     public static Iterator JavaDoc list(ClassLoader JavaDoc CL) throws NoSuchFieldException JavaDoc,
19             IllegalAccessException JavaDoc {
20         Class JavaDoc CL_class = CL.getClass();
21         while (CL_class != java.lang.ClassLoader JavaDoc.class) {
22             CL_class = CL_class.getSuperclass();
23         }
24         java.lang.reflect.Field JavaDoc ClassLoader_classes_field = CL_class
25                 .getDeclaredField("classes");
26         ClassLoader_classes_field.setAccessible(true);
27         Vector JavaDoc classes = (Vector JavaDoc) ClassLoader_classes_field.get(CL);
28         return classes.iterator();
29     }
30
31     public static void main(String JavaDoc args[]) throws Exception JavaDoc {
32         // URLClassLoader u = new URLClassLoader();
33
System.out.println( System.getProperty("java.class.path", "."));
34         
35         ClassLoader JavaDoc myCL = ListAllLoadedClasses.class.getClassLoader();
36         while (myCL != null) {
37             System.out.println("ClassLoader: " + myCL);
38             for (Iterator JavaDoc iter = list(myCL); iter.hasNext();) {
39                 System.out.println("\t" + iter.next());
40             }
41             myCL = myCL.getParent();
42         }
43     }
44 }
45
46
Popular Tags