Java程序中是否必须使用Main方法?
编写java程序需要主要方法吗 这是我的代码:Java程序中是否必须使用Main方法?,java,Java,编写java程序需要主要方法吗 这是我的代码: package example; public class HelloWorld { public HelloWorld() { } public String getHelloWorld() { return "Hello From Java!"; } } 它显示了编译时的错误: java.lang.NoSuchMethodError: main Exception in thread
package example;
public class HelloWorld {
public HelloWorld() {
}
public String getHelloWorld() {
return "Hello From Java!";
}
}
它显示了编译时的错误:
java.lang.NoSuchMethodError: main
Exception in thread "main"
不需要,例如web应用程序不需要它。它们不使用
main()
方法,但是如果您正在测试或运行一个独立的应用程序,为了了解您期望的输出,您可能需要main()
方法。main方法是程序的默认入口点。如果您没有定义一个,然后尝试执行生成的jar,这就是您将看到的。如果你不想制作一个需要独立启动的程序,你就不需要它——例如,一个被其他程序引用的jar,或者一个网站。是的,任何可执行程序都需要它。独立应用程序需要main,因为它是入口点。JVM如何知道从何处启动程序?之所以会收到此错误消息,是因为您试图使用java(Windows上的java.exe)运行一个类,并且它希望找到main()方法
这种方法本身并不是必需的,但它可以形成启动应用程序的入口点。您可以按如下方式重写您的类,以实现您所寻求的结果:
package example;
public class HelloWorld {
// Running a class using java invokes this method
public static void main(String[] args) {
HelloWorld hw = new HelloWorld();
System.out.println( hw.getHelloWorld() );
}
public HelloWorld() {
}
public String getHelloWorld() {
return "Hello From Java!";
}
}
如果您试图执行一个Java类,JVM将寻找一个
main
方法来调用它。从Java语言规范的第页:
Java虚拟机通过加载指定的类,然后在此指定类中调用方法main
启动。第节概述了执行main
所涉及的加载、链接和初始化步骤,作为本章概念的介绍。进一步的章节详细说明了加载、链接和初始化
并非所有类都需要
main
,只有作为执行“入口点”的类才需要 java程序中不需要main方法。正如其他人所指出的,web应用程序不使用main方法
独立应用程序甚至不需要它。考虑
class JavaAppWithoutMain
{
static
{
System . out . println ( "Hello World!" ) ;
}
}
我编译并运行了它,得到了以下结果:
Hello World!
Exception in thread "main" java.lang.NoSuchMethodError: main
对于独立应用程序,您必须
Main是首选。您的java应用程序或程序(不是每个类)至少需要一个Main方法来运行它。您得到的不是编译错误,而是运行时错误 “当您使用与包含main()方法的类名相同的名称保存程序时,JVM将在执行时创建该类的对象,并使用该对象调用main()metod作为object.main() 因此,如果main()方法丢失(静态初始值设定项也丢失),则它将引发异常。“ 对于web应用程序,与上面的解释相同
ref:“并非所有类都需要main,只有作为执行“入口点”的类。”+1请注意,这是初学者经常犯的错误。但是,web应用程序通常在Java EE中指定另一个方法作为入口点。这看起来像是运行时错误,不是编译错误。此社区Wiki问题列出了此常见问题的可能原因:据我所知,现代java不再允许这种滥用静态初始值设定项的行为。@emory为什么首选主方法?因为静态初始值设定项不适用于这类东西?@Abdul我想是的。