Difference between NoClassDefFoundError vs
ClassNotFoundExcepiton in Java
Both NoClassDefFoundError and ClassNotFoundException are
dangerous errors which come when JVM or ClassLoader not able to locate class
during the class loading process. Since different ClassLoader loads
classes from a different location, sometimes this issue may be caused because
of incorrect CLASSPATH as well i.e. some JAR files from lib are missing or from
the old version. Though look quite similar there is a subtle difference
between NoClassDefFoundError and ClassNotFoundException, NoClassDefFoundError indicates
that class was present during the time of compilation but not available when
you run Java program, sometimes error on static initializer block can also
result in NoClassDefFoundError.