The ways to resolve the java.lang.NoClassDefFoundError are :- Follow the link.
What is reason of NoClassDefFoundError in Java?
NoClassDefFoundError in Java comes when Java Virtual Machine is not
able to find a particular class at runtime which was available during
compile time. For example if we have a method call from a class or
accessing any static member of a Class and that class is not available
during run-time then JVM will throw NoClassDefFoundError. It’s
important to understand that this is different than
ClassNotFoundException which comes while trying to load a class at
run-time only and name was provided during runtime not on compile
time. Many Java developer mingle this two Error and gets confused.In short NoClassDefFoundError will come if a class was present during
compile time but not available in java classpath during runtime.
Normally you will see below line in log when you get
NoClassDefFoundError:
How to resolve java.lang.NoClassDefFoundError
:
- Class is not available in Java Classpath.
- You might be running your program using jar command and class was not defined in manifest file’s ClassPath attribute.
- Any start-up script is overriding Classpath environment variable.
- Because NoClassDefFoundError is a sub class of java.lang.LinkageError it can also come if one of it dependency like native library may not available.
- Check for java.lang.ExceptionInInitializerError in your log file. NoClassDefFoundError due to failure of static initialization is quite common.
- If you are working in J2EE environment than visibility of Class among multiple Classloaders can also cause java.lang.NoClassDefFoundError, see examples and scenario section for detailed discussion.