This post originated from an RSS feed registered with Java Buzz
by Javin Paul.
Original Post: NoClassDefFoundError vs ClassNotFoundExcepiton in Java
Feed Title: Java67
Feed URL: http://www.java67.com/feeds/posts/default?alt=rss
Feed Description: Java and technology tutorials, tips, questions for all programmers.
Both NoClassDefFoundError and ClassNotFoundException are
dreaded Error which comes when JVM
or ClassLoader
not able to locate class during class
loading process. Since different ClassLoader loads
classes from different location, sometime this issue may caused because of
incorrect CLASSPATH as well i.e. some JAR
files from lib is mission or from old version. Though look quite similar
there is subtle difference between
NoClassDefFoundError and ClassNotFoundException, NoClassDefFoundError indicates
that class was present during time of compilation but not available when you
run Java program, some time error on static initializer block can also result
in NoClassDefFoundError. On the other hand ClassNotFoundException
is nothing to do with compile time, ClassNotFoundException comes when
you try to load a class in runtime using Reflection, e.g. loading SQL drivers
and corresponding Class loader is not able to find this class. Apart from this
fundamental difference between NoClassDefFoundError and ClassNoFoundException in Java,
let's see some more points for better understanding.