NoClassDefFoundError: Could not initialize class
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
报错大概意思就是 该类初始化失败
大概率是缺少依赖的问题。
平时我们可能会更新pom文件下载新增的依赖然后将新下载的依赖更新到线上的系统也是问题的所在
举例说明例如我们新增如下的依赖
<!--获取系统CPU等信息-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>3.9.1</version>
</dependency>
按常规处理我们可能会去本地的maven仓库把该依赖复制更新到线上系统。
但是这样可能会遗漏jar包因为这个jar包还可能依赖于其他jar包
正确的做法应该是这样相对于目前我已知的解决办法
点进去(按住Ctrl然后鼠标点击),看看是否有依赖的jar包
查看是否有 <dependencies> 标签有的话证明该jar包依赖于其他jar包这里是有的
所以在线上更新的时候该jar包也需要更新到线上的如果不更新就会出现题目开始的异常
NoClassDefFoundError: Could not initialize class
接下来我们继续点进去看 jna-platform 是否还有依赖的jar包如果有同样需要更新到线上
依次类推直到没有<dependencies> 标签出现为止
点进去发现改jar包也有依赖
按照上面的步骤继续点进去查看jna是否也有依赖的jar包进去之后发现没有了<dependencies> 标签也就没有依赖的jar包了
到此为止需要更新的jar包就全部找到了
oshi-core jna-platform jna 三个jar包需要更新到线上。
感觉这种方法还是比较麻烦的依赖多的话会很难受。
但是目前没有更好的办法可以解决问题的目的达到了就可以了吧