在java中没有main函数的print

时间:2011-12-18 18:26:57

标签: java

我的朋友们一直在问这个问题

在java中编写程序打印“Hello,World”而不使用main()函数

所以我的问题是:

是否真的可以编写和编译没有main()的程序。?

5 个答案:

答案 0 :(得分:8)

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

将使用1.7之前的Java VM打印Hello,World。在初始化类之前,Oracle JDK 1.7会检查main

JLS Execution part 12.1.4似乎表明JVM 尝试运行main方法,但仅在初始化程序运行之后。这似乎在Java 1.7中有不同的解释。

特别感谢System.exit(0)行的Ted Hopp

答案 1 :(得分:3)

您可以在服务器上运行java web项目(例如Tomcat)。 该项目可以使用servlet打印“Hello World”

答案 2 :(得分:1)

简短的回答是:不。

Mat展示了一个很好的例子,告诉你如何做一些接近它的事情,但是你会得到例外。

每个java程序都需要一个main方法,即使它可能在某些方面被隐藏。例如,当您编写Servlet时,您不会编写main方法,但它仍然存在于servlet容器的代码中。

答案 3 :(得分:1)

这是怎么做的

public class WithoutMain {

    static {
        System.err.println("Hello World");
        System.exit(0);
    }
}

当运行JVM时,将从创建类开始,当这样做时,类将首先打印Hello World,然后退出JVM(使用 System.exit(0); ),这样JVM永远不会达到缺少 main 方法的程度。

答案 4 :(得分:-1)

不,当然你可以编写和编译没有main()的程序,但你不能运行它。 运行程序main是强制性的。