新的Java程序员在尝试运行Java程序时,经常会遇到如下消息。(不同的Java工具、IDE等为这个问题提供了各种诊断方法。)
Error: Main method not found in class MyClass, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
Error: Main method not found in the file, please define the main method as:
public static void main(String[] args)
Error: Main method is not static in class MyClass, please define the main method as:
public static void main(String[] args)
Error: Main method must return a value of type void in class MyClass, please
define the main method as:
public static void main(String[] args)
java.lang.NoSuchMethodError: main
Exception in thread "main"
这意味着什么,是什么导致了它,人们应该做些什么来修复它?
发布于 2011-03-23 23:12:39
一般来说,这意味着你正在尝试运行的程序没有"main“方法。如果你要执行一个Java程序,被执行的类必须有一个main
方法:
例如,在文件Foo.java
public class Foo {
public static void main(final String args[]) {
System.out.println("hello");
}
}
这个程序的编译和运行应该没有问题--如果main
被调用了其他东西,或者不是静态的,它就会生成您遇到的错误。
每个可执行程序,无论语言如何,都需要一个入口点,告诉解释器、操作系统或机器从哪里开始执行。在Java的例子中,这是静态方法main
,传递给它的参数是包含命令行参数的args[]
。这个方法相当于C语言中的int main(int argc, char** argv)
。
发布于 2015-02-28 00:19:59
我觉得上面的答案漏掉了一个场景,即使你的代码有一个main(),这个错误也会发生。当您使用使用Reflection来调用方法的JNI时。在运行时期间,如果找不到该方法,您将获得一个
java.lang.NoSuchMethodError: No virtual method
发布于 2021-06-03 21:10:29
如果您使用的是VSCode:
选择:清理工作区
选择:重新启动和删除
继续编码:-)
https://stackoverflow.com/questions/5407250
复制相似问题