SpringBoot之java.lang.NoClassDefFoundError

一、预备

首先确认你的确有下载到依赖,不然的话这个问题很明确就是要你去找到正确的依赖

我项目的pom文件明明就依赖了这个类所在的文件了,为什么还报类未定义异常呢?而且在idea下查找类也能明确看到类也在maven的外部依赖中看到了,如下以下面的异常为例,看到的确在maven中找到了。执行run Application确还是报错。

Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/hk2/utilities/reflection/ReflectionHelper

88c831abf1faa1335517473f6a7c8236c12.jpg

二、定位问题

经过如上确认后,可以想到应该是配置出了问题了

7a261b4a14efda851cb705e271b59ca9376.jpg

0b6b7375c0e09de953589f96245d6c04816.jpg

可以看到这个启动类依赖的classpath是模块的类路径,并且启动的是Application并不是Maven应用,看这个模块的报类未定义的错引入类是hk2-utils是provided的,

1716d935e649ff292822950e7fc45f73a61.jpg

再看启动打印的启动信息如下:

C:\Java\jdk1.8.0_101\bin\java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:49736,suspend=y,server=n -classpath C:\Users\cqq\AppData\Local\Temp\classpath.jar -Dfile.encoding=UTF-8 com.xxx.BootstrapApp

查看这个文件中的MANIFEST.MF,并找不到这个类,所以启动就会报NoClassDefFoundError

66f8a8e557a8f2662dd3de9dd20a339f078.jpg

找到原因就可以下一步操作了

三、解决问题

1.可以修改.iml文件的provided

2.修改项目启动方式为maven启动

转载于:https://my.oschina.net/u/1271447/blog/3005840

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值