分析NoClassDefFoundError错误的心得,前几天紫竹群里有朋友提到自己遇到了NoClassDefFoundError错误,我们先来看看J2SE API中对这个错误描述:
当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
我根据自己的经验,给出了排错的步骤:
1、排除低级错误:看看是否所搜索的类名与实际定义的类名不匹配,如大小写不一致,或少写多写字母等。如:new ClassName(); 而实际定义的类名是CClasName或者className
2、看看在所搜索的类定义中是否加了包名,而项目文件夹中却没有这个包的情况(往往是在别处拿人家的代码来用,却没有检查是否建立了相应的包),因为这种情况编译器是不会报错的,只会在编译时告诉JVM到时要加载这个类就到这个包去找,而实际上你并没有建立这个包或者你的这个类没有放到那个包中,JVM自然会报错。如:你在某个类中有package mypackage;这么一句,而你的这个类却不在这个包目录下,当运行你的程序,某个时候需要加载使用你的这个类时,JVM会报错。
3、看看是否环境变量有问题,这种情况在这里发生的机率很低了吧,呵呵,毕竟之前你的其他程序都应该是在正常运行的。当然,也不能否定这个情况,如:你没有设'.'这个当前目录的classpath时,有时也可能会出现这样的错误。
以上谨代表个人看法,因鄙人学习Java时间不长(一个月零23天),所以有纰漏之处,请各位斧正,谢谢!发此帖也算是练练脸皮,hoho。
------解决方法--------------------------------------------------------
沙发!给个一分吧!哈哈
------解决方法--------------------------------------------------------
ClassLoader 。。 forname.. 跟着学习学习。
------解决方法--------------------------------------------------------
顶一个,不错的心得
------解决方法--------------------------------------------------------
PQjava 的帖子,特来顶下o(∩_∩)o...
------解决方法--------------------------------------------------------
SF?