为啥 Java 程序需要“main()”方法?
Posted
技术标签:
【中文标题】为啥 Java 程序需要“main()”方法?【英文标题】:Why does a Java program require a "main()" method?为什么 Java 程序需要“main()”方法? 【发布时间】:2011-07-10 07:27:48 【问题描述】:这只是一个命名约定?为什么在从 shell 执行程序时不能调用任何方法,例如
$> java myPackage.MyClass.myOwnEntryPoint(String[] str)【问题讨论】:
【参考方案1】:main
方法是 java
程序用于运行 Java 应用程序(相对于小程序或其他东西)寻找的入口点。据我所知,没有办法告诉java
寻找不同的方法,所以这不仅仅是一个命名约定;如果你想让你的应用程序运行(无论如何通过标准的java
工具),你想给它一个带有适当签名的main
方法。 (您可以使用静态初始化程序玩游戏,但这完全是另一回事。)
main
这个名字继承自 C,但它不仅仅是一个约定。
【讨论】:
【参考方案2】:是的,这是一个命名约定,继承自C。这样做的好处是,通过查看代码很容易找出哪个方法应该是main方法。
【讨论】:
不是只是一个约定,不是吗?我的意思是,当你运行程序时(通过java
),这就是它所寻找的......
@T.J.克劳德:是的,这是真的。但是您可以编写自己的程序启动器,它会加载一个类并运行方法myPersonalMain()
。这就是为什么它“只是一个约定”——尽管它是许多工具(不仅仅是java
)使用的一个重要约定。
@T.J.:嗯,有不同种类的代码转换。破坏一些只会激怒其他程序员,而另一些则必须遵循才能使代码完全正常工作。后者的另一个例子是 setter 和 getter 的命名约定。
我明白你在说什么。对我来说,如果它被硬编码到像java
这样的绝对中心工具中,那不是约定,而是要求。 :-) 但是@sleske 有一个好点:您可以编写自己的程序启动器,使用不同的名称。以上是关于为啥 Java 程序需要“main()”方法?的主要内容,如果未能解决你的问题,请参考以下文章
java中的main方法为啥接受无效的String args