打印你好世界没有主要方法

use*_*247 0 java

我正在使用Eclipse.我正在尝试制作一个不包含main函数的程序,但仍会打印Hello, World:

  public class Q 
  {
     static 
    {
        System.out.println("Hello World");
        System.exit(0);
    }
  }
Run Code Online (Sandbox Code Playgroud)

但是这个程序并没有给我预期的结果.一个错误即将到来,说Q类没有找到主要方法.我在哪里犯了错误?

ars*_*jii 6

您还需要运行该程序的静态初始化块来执行,你不能没有适当的做main法(如Java 7中1).现在,这并不是说main需要实际包含任何代码:

class Q {
    static {
        System.out.println("Hello World");
        System.exit(0);
    }

    public static void main(String[] args) {}
}
Run Code Online (Sandbox Code Playgroud)

1您的代码实际上适用于Java 6及更低版本 - 您不需要main方法.这是因为static初始化块执行一个main被搜索的方法.但是,在您的情况下,您在该块的末尾退出程序System.exit(0),因此Java永远不会查找,main并且您不会收到错误.