新的Java程序员在尝试运行Java程序时经常会遇到这些消息。
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 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"
这是什么意思,是什么原因引起的,应该怎么做才能解决?
当你使用java命令从命令行运行Java应用程序时,例如,
java some.AppName arg1 arg2 ...
该命令将加载你指定的类,然后查找名为的入口点方法main
。更具体地说,它正在寻找一种声明如下的方法:
package some;
public class AppName {
...
public static void main(final String[] args) {
// body of main method follows
...
}
}
入口点方法的特定要求是:
“ main”
,且大小写精确为1。public
。static 2
。void
。(可以使用varargs
语法来声明参数;例如String... args
,请参阅此问题以获取更多信息。该String[]参数用于从命令行传递参数,即使你的应用程序不接受任何命令行参数,该参数也是必需的。)
如果不满足以上任何条件,则该java
命令将失败,并显示消息的某些变体:
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
或者,如果你运行的Java版本非常旧:
java.lang.NoSuchMethodError: main
Exception in thread "main"
如果遇到此错误,请检查你是否有main方法,并且该方法满足上述所有六个要求。
确切错误:“错误:在类节点中找不到Main方法,请将Main方法定义为:public static void Main(string[]args)或JavaFX应用程序类必须扩展JavaFX.application.application” 但主要功能已经定义。
问题内容: 在我的学校,我正在使用Notepad ++编写一个applet,并且需要将其包装在一个jar中以便进行签名。我试图用这样的批处理文件来做到这一点: 然后我得到一个未找到异常的主要方法。在调试或打开jar方面,我无能为力,因为正如我之前说的那样,它在学校,而且很多功能都被阻止了。如有需要,我可以提供更多详细信息。 问题答案: Applet没有方法,因此您无法使用命令以常规方式运行它。 要
问题内容: 我在一个空目录中有一个超简单的文件: 和预期的以下作品 我在Mac OS X上,使用emma-2.0.5312和java 1.7.0_40 emma.jar已安装到/ Library / Java / Extensions,因此可以正常工作 (它显示了使用emmarun的帮助) 接下来我跑 我得到错误: 是什么原因造成的?显然,它确实有一个公共的,可访问的主方法,那么为什么艾玛找不到它
问题内容: 我对这一切都是陌生的,实际上我只是对编码有基本的了解。 我实际上正在尝试使用在ChemMedChem中发布的Java代码(支持信息中为dx.doi.org/10.1002/cmdc.200900317) 我拥有他们使用的所有适当程序/ jar文件(来自ChemAxon) 我能够复制代码并将其编译到类文件中而没有任何问题: 虽然我得到: 然后,当它尝试运行类文件时(将输入文件作为虚拟化学
问题内容: 我对这一切都是陌生的,实际上我只是对编码有基本的了解。 我实际上正在尝试使用在ChemMedChem中发布的Java代码(支持信息中为dx.doi.org/10.1002/cmdc.200900317) 我拥有他们使用的所有适当程序/ jar文件(来自ChemAxon) 我能够复制代码并将其编译到类文件中而没有任何问题: 虽然我得到: 然后,当它尝试运行类文件时(将输入文件作为虚拟化学
我知道这个问题之前也提出过,我已经阅读了所有关于他们的内容,但仍然没有得到这个错误的解决方案。有人能帮我解决这个问题吗? 尝试了一切,运行这个代码。在cmd中运行,仍然得到相同的错误。虽然main包含在这个程序中,为什么它仍然给我错误? 错误:在类测试中未找到Main方法,请将Main方法定义为:public static void Main(String[]args)或JavaFX应用程序类必须