文档章节

Eclipse中NoClassDefFoundError异常的原因之一

gmy8y9t
 gmy8y9t
发布于 2015/08/09 00:33
字数 305
阅读 306
收藏 0

这几天用Eclipse集成Spring4.1 和Junit 4.12的时候老是报NoClassDefFoundError问题。

java.lang.TypeNotPresentException: Type [unknown] not present
    at sun.reflect.annotation.TypeNotPresentExceptionProxy.generateException(Unknown Source)
    at sun.reflect.annotation.AnnotationInvocationHandler.invoke(Unknown Source)
    ... more
Caused by: java.lang.NoClassDefFoundError: org/junit/runners/BlockJUnit4ClassRunner
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
    ... more

查了网站的资料了解了ClassNotFoundException和NoClassDefFoundError的区别

加载时从外存储器找不到需要的class就出现ClassNotFoundException
连接时从内存找不到需要的class就出现NoClassDefFoundError

也看了许多网上的解决方法,就两种

1、没有导入junit的jar包。
2、junit的版本过低,需更新。

然并卵,确定有导junit的jar包,而且是最新4.12的。

最后才发现Eclipse里System Library和User Library的区别,下图被我勾选了。

spring的jar包被配置为System Library,但junit的jar是User Library

spring的SpringJUnit4ClassRunner继承了junit的BlockJUnit4ClassRunner

User Library中的类可以调用System Library中的类,但System Library的类不能调用User Library的类,因此出现了NoClassDefFoundError异常

解决方法:去掉上图"System library"的勾即可。

有个不明白的,为何System Library的类不能调用User Library的类,这个没研究出来,Eclipse是怎么在这两种Library中加载类的呢?

© 著作权归作者所有

gmy8y9t
粉丝 0
博文 1
码字总数 305
作品 0
广州
私信 提问
【eclipse】 怎么解决java.lang.NoClassDefFoundError错误

前言 在日常Java开 发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类 明明还在,为什么找不到?而且我们很容易把jav...

无信不立
2017/02/22
0
0
ClassNotFoundException和NoClassDefFoundError的区别

正如它们的名字所说明的:NoClassDefFoundError是一个错误(Error),而ClassNOtFoundException是一个异常,在Java中错误和异常是有区别的,我们可以从异常中恢复程序但却不应该尝试从错误中恢...

一条大河波浪宽
2013/10/05
24.1K
0
ClassNotFoundException和NoClassDefFoundError

定义: 对于术语的定义,最原汁原味的还是官方文档。 关于ClassNotFoundException,JavaDoc里这么描述: Thrown when an application tries to load in a class through its string name us...

摆渡者
2016/07/20
209
0
NoClassDefFoundError和ClassNotFoundException区别

很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。 NoClassDefFoundError错误发生的原因 NoClassDefFoundError错误...

_上善_若水_
2018/04/17
201
0
Android使用KSOAP2调用WebService及正确导入jar包的问题

最近在学Android使用KSOAP2调用现有的Webservice的方法,期间在网上找了很多代码,但是每次在Android模拟器中运行的时候程序都会崩溃,搞得自己都快崩溃了。。。。 查看了一下LogCat中的错误...

鉴客
2011/12/12
3.6K
2

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

huangkejie
40分钟前
5
0
JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
57分钟前
97
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
今天
5
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
今天
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部