我得到一个NoSuchMethodError错误时运行我的Java程序。出了什么问题,我该怎么解决?
当前回答
我在使用Intelij的Gradle项目中遇到了类似的问题。 我通过删除.gradle(见下面的截图)包和重建项目来解决这个问题。 .gradle包
其他回答
大多数时候java.lang.NoSuchMethodError会被编译器捕获,但有时它会在运行时发生。如果此错误在运行时发生,那么惟一的原因可能是类结构的更改使其不兼容。
最佳解释:https://www.journaldev.com/14538/java-lang-nosuchmethoderror
这意味着相应的方法在类中不存在:
如果您正在使用jar,那么反编译并检查jar的各个版本是否有适当的类。 检查是否从源代码编译了正确的类。
如果您的文件名与包含main方法的类名不同,则可能会导致此错误。
在没有更多信息的情况下,很难确定问题,但根本原因是您很可能针对缺少方法的类的不同版本编译了一个类,而不是您在运行时使用的类。
查看堆栈跟踪…如果在对库中的对象调用方法时出现异常,则很可能在编译和运行时使用了该库的不同版本。确保这两个地方都有正确的版本。
如果在对由您创建的类实例化的对象调用方法时出现异常,那么您的构建过程似乎是错误的。确保在编译时更新了实际运行的类文件。
只是在现有的答案上增加。我在eclipse中使用tomcat时遇到了这个问题。我换了一门课,做了以下步骤,
在eclipse中清洁和建造项目 MVN清洁安装 重新启动tomcat
我仍然面临着同样的错误。然后我清理tomcat,清理tomcat工作目录并重新启动服务器,我的问题消失了。希望这对大家有所帮助
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap