Skip to main content

Demystifying class loading problems, Part 1: An introduction to class loading and debugging tools

Learn how class loading works and how your JVM can help you sort out class loading problems


Return to article



MainClass references ClassToTrace in its main method


ExtClass loader attempting to find ClassToTrace
ExtClass loader using classpath D:\jre\lib\ext\gskikm.jar;D:\jre\lib\ext\ibmjceprovider.jar;
 D:\jre\lib\ext\indicim.jar;
 D:\jre\lib\ext\jaccess.jar;D:\jre\lib\ext\ldapsec.jar;
 D:\jre\lib\ext\oldcertpath.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\gskikm.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\ibmjceprovider.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\indicim.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\jaccess.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\ldapsec.jar
ExtClass loader could not find ClassToTrace.class in D:\jre\lib\ext\oldcertpath.jar
ExtClass loader could not find ClassToTrace
AppClass loader attempting to find ClassToTrace
AppClass loader using classpath C:\tests;D:\lib\tools.jar
AppClass loader could not find ClassToTrace.class in C:\tests
AppClass loader could not find ClassToTrace.class in D:\lib\tools.jar
AppClass loader could not find ClassToTrace
Exception in thread "main" java.lang.NoClassDefFoundError: ClassToTrace at MainClass(MainClass.java:6)


Return to article



Sample of method trace output

 ...
 > java/lang/ClassLoader.loadClass Bytecode method, This = 0x00D2B7B0, Signature: (Ljava/lang/String;)Ljava/lang/Class;
  > java/lang/ClassLoader.loadClass Bytecode method, This = 0x00D2B7B0, Signature: (Ljava/lang/String;Z)Ljava/lang/Class;
   > java/lang/ClassLoader.loadClass Bytecode method, This = 0x00D2B830, Signature: (Ljava/lang/String;Z)Ljava/lang/Class;
   < * java/lang/ClassLoader.loadClass Bytecode method, looking for matching catch block for java.lang.ClassNotFoundException
  < java/lang/ClassLoader.loadClass Bytecode method
 < java/lang/ClassLoader.loadClass Bytecode method
 > HelloWorld.main Bytecode static method, Signature: ([Ljava/lang/String;)V
 < HelloWorld.main Bytecode static method



Return to article