irpas技术客

NoClassDefFoundError: Could not initialize class_夏夜里的晚风。

irpas 5961

报错大概意思就是 该类初始化失败

大概率是缺少依赖的问题。

平时我们可能会更新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包,需要更新到线上。

感觉这种方法还是比较麻烦的,依赖多的话会很难受。

但是目前没有更好的办法,可以解决问题的目的达到了,就可以了吧


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #could #not #Initialize #class #报错大概意思就是