分为两种情况,如果找不到自己写的某个方法,一般是main函数没加static之类的。这里讨论第二种情况:找不到第三方包中的某个方法。

这样的情况大概率是因为这个报错的包在Maven依赖中存在多个版本,存在版本冲突。如下面的报错就是因为google.protobuf这个包有多个版本,而我本次运行jar包中的某个类(eg.createLove.class),这个类依赖的protobuf需要1.19,但是该jar包中起作用的版本是1.17。

Exception in thread “main” java.lang.NoSuchMethodError: ‘boolean com.google.protobuf.GeneratedMessageV3.isStringEmpty(java.lang.Object)’

解决方法:

使用maven helper插件,将起作用的那个版本右键exclude掉即可。