首先声明,这篇文章的处理方法非通用,因为NoClassDefFoundError可能有很多原因(可能真不存在),但我这里只讲昨天遇到的情况:class确实存在,编译没问题,但是运行时就抛NoClassDefFoundError.
情况就是:
image.png编译不出错,出错的话IDEA早标红了。运行出错,说明运行时引用不到包。于是查看dependencies, 果然是Provided,这就是告诉JVM 在运行时这个包有被提供,但是因为这个包没有被加到CLASSPATH里,当然调不到。于是就有这个错。
解决办法:
我这里只采取最粗俗的办法,见图二手动把provided改成compile。gradle.build应该可以达到一样的效果,只是目前我的重点不在gradle, 先解决问题就好。
image.png
image.png
网友评论