top button
Flag Notify
    Connect to us
      Facebook Login
      Site Registration Why to Join

Facebook Login
Site Registration

ClassNotFoundException vs NoClassDefFoundError in java?

+1 vote

What is the difference between ClassNotFoundException and NoClassDefFoundError in java?

posted Oct 1, 2013 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

+1 vote

ClassNotFoundException : ClassNotFoundException occurs when class loader could not find the required class in class path . So , basically you should check your class path and add the class in the classpath.

NoClassDefFoundError : This is thrown when at compile time the required classes are present , but at run time the classes are changed or removed or class's static initializes threw exceptions. It means the class which is getting loaded is present in classpath , but one of the classes which are required by this class , are either removed or failed to load by compiler .So you should see the classes which are dependent on this class .

Example :
public class Test1

public class Test 

   public static void main(String[] args)

        Test1 = new Test1();    


Now after compiling both the classes , if you delete Test1.class file , and run Test class , it will throw

Exception in thread "main" java.lang.NoClassDefFoundError: Test
        at Test1.main(
Caused by: java.lang.ClassNotFoundException: Test
        at$ Source)
        at$ Source)
        at Method)
        at Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more 
answer Oct 1, 2013 by Salil Agrawal
Contact Us
+91 9880187415
#280, 3rd floor, 5th Main
6th Sector, HSR Layout
Karnataka INDIA.