有时候会出现Exception in thread “main” java.lang.NoClassDefFoundError: com/sun/tools/javac/Main 这样的错误,这个错误说明你的Classpath, PATH 或者 JAVA_HOME没有安装配置正确或者JDK的安装不正确。这个问题的解决办法时重新安装你的JDK。
Java在执行linking操作的时候,也可能导致NoClassDefFoundError。例如在前面的脚本中,如果在编译完成之后,我们删除User的编译文件,再运行程序,这个时候你就会直接得到NoClassDefFoundError,而错误的消息只打印出User类的名称。
java.lang.NoClassDefFoundError: testing/User at testing.NoClassDefFoundErrorDueToStaticInitFailure.main(NoClassDefFoundErrorDueToStaticInitFailure.java:23)1
2
现在我们知道要怎样去面对NoClassDefFoundError异常并解决它了。
参考文章:
how classpath work in java
3 ways to solve java.lang.NoClassDefFoundError in Java J2EE
When a class is loaded and initialized in JVM
类加载器的工作原理