Java程序中是否必须使用Main方法?

Pra*_*een 9 java

编写java程序需要主要方法吗?

这是我的代码:

package example;

public class HelloWorld {

    public HelloWorld() {

    }

    public String getHelloWorld() {

        return "Hello From Java!";
    }
}
Run Code Online (Sandbox Code Playgroud)

它在编译时显示错误:

java.lang.NoSuchMethodError: main
Exception in thread "main"
Run Code Online (Sandbox Code Playgroud)

emo*_*ory 15

java程序中不需要main方法.正如其他人所指出的,Web应用程序不使用main方法.

在独立应用程序中甚至不需要它.考虑

class JavaAppWithoutMain
{
    static
    {
    System . out . println ( "Hello World!" ) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

我编译并运行并获得以下结果:

Hello World!
Exception in thread "main" java.lang.NoSuchMethodError: main
Run Code Online (Sandbox Code Playgroud)

对于独立应用程序,您必须拥有

  1. 主要方法或
  2. 静态初始化器.

主要是首选.


Dav*_*d M 9

main方法是程序的默认入口点.如果你没有定义一个,然后尝试执行生成的jar,这就是你会看到的.如果您不想生成需要独立启动的程序,则不需要它 - 例如,其他程序或网站引用的jar.


And*_*are 6

没有main方法,您的应用程序将没有入口点.是的,任何可执行程序都需要它.


Pas*_*ent 5

如果您尝试执行Java类,JVM将查找main调用它的方法.从第12章 Java语言规范的执行:

通过加载指定的类然后main在此指定的类中调用该方法来启动Java虚拟机.第12.1节 概述了执行中涉及的加载,链接和初始化步骤main,作为本章概念的介绍.其他部分详细说明了加载(第12.2节),链接(第12.3节)和初始化(第12.4节)的细节.

并非所有类都需要a main,只需要作为执行"入口点"的类.