When I programming, an error occured:
"java.lang.NoClassDefFoundError: Could not initialize class com.google.api.client.util.Data"
How to resolve it?
java.lang.NoClassDefFoundError: Could not initialize class com.google.api.client.util.Data at com.google.api.client.util.FieldInfo.(FieldInfo.java:131) at com.google.api.client.util.FieldInfo.of(FieldInfo.java:104) at com.google.api.client.util.ClassInfo.(ClassInfo.java:181) at com.google.api.client.util.ClassInfo.of(ClassInfo.java:92) at com.google.api.client.util.GenericData.(GenericData.java:79) at com.google.api.client.http.HttpHeaders.(HttpHeaders.java:59) at com.google.api.client.http.HttpRequest.(HttpRequest.java:65)
at com.google.api.client.http.HttpTransport.buildRequest(HttpTransport.java:98) at com.google.api.client.http.HttpRequestFactory.buildRequest(HttpRequestFactory.java:89) at com.google.api.client.http.HttpRequestFactory.buildGetRequest(HttpRequestFactory.java:120)
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.
- 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.