博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot之java.lang.NoClassDefFoundError
阅读量:6271 次
发布时间:2019-06-22

本文共 796 字,大约阅读时间需要 2 分钟。

hot3.png

一、预备

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

我项目的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

你可能感兴趣的文章
文件磁盘命令(就该这么学6章内容)
查看>>
2016-207-19 随笔
查看>>
java的double类型如何精确到一位小数?
查看>>
看看国外的javascript题目,你能全部做对吗?
查看>>
ffmpeg 如何选择具有相同AVCodecID的编解码器 (AVCodec)
查看>>
真正解决 Windows 中 Chromium “缺少 Google API 密钥” 的问题
查看>>
Spring 之 AOP
查看>>
软件项目管理|期末复习(二)
查看>>
直接调用VS.net2005中的配置界面
查看>>
程序员的自我修养五Windows PE/COFF
查看>>
关于字符集,编码格式,大小端的简单总结
查看>>
js string 转 int Number()
查看>>
课堂练习:ex 4-20
查看>>
20155328 2016-2017-2 《Java程序设计》 第8周学习总结
查看>>
python操作redis--string
查看>>
echarts图表初始大小问题及echarts随窗口变化自适应
查看>>
Inherits、CodeFile、CodeBehind的区别
查看>>
创建一个SimpleDlg
查看>>
使用XML生成菜单
查看>>
udp,tcp对于socket的写法
查看>>