gpt4 book ai didi

java - 线程 "main "中的 java.lang.NoSuchMethodError 主异常和错误 : Main method not found in class 之间有什么区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:28 24 4
gpt4 key购买 nike

我有这门课

public class demo3 {
private static void sum()
{
}
}

当我试图运行这个类时,我预计错误是 java.lang.NoSuchMethodError main Exception in thread "main "

但是,输出有点不同,我得到了以下消息

Error: Main method not found in class demo3, please define the main method as:
public static void main(String[] args)

现在这引起了我的好奇,我想知道在哪种情况下我会得到 java.lang.NoSuchMethodError 或者在那种情况下我会得到其他错误消息。

最佳答案

public static void main(String[]) 时,您会收到 Main method not found 消息在您要求 JVM 开始运行的类中找不到。即找不到整体程序的入口。

如果您的(已经运行的)代码试图调用一个在编译时可用但在类的版本中不可用的类的方法,您将收到 java.lang.NoSuchMethodError 消息您在运行时使用(例如,您针对库的一个版本进行编译,然后在不重新编译的情况下更新库 jar)。这可能发生在程序的任何时候。

JLS 中似乎没有任何内容表明不能抛出 NoSuchMethodError,而不是 Main method not found;然而,未能编写 main 方法(要么完全编写,要么使用错误的签名编写)是一个比“编译后类更改”情况更常见的错误,特别是对于初学者来说, NoSuchMethodError 可能太神秘了。在这种情况下提供对用户更友好的消息并没有什么坏处。

关于java - 线程 "main "中的 java.lang.NoSuchMethodError 主异常和错误 : Main method not found in class 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com