我的朋友们一直在问这个问题
在java中编写程序打印“Hello,World”而不使用main()函数
所以我的问题是:
是否真的可以编写和编译没有main()的程序。?
答案 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是强制性的。