【问题标题】:Why does a Java program require a "main()" method?为什么 Java 程序需要“main()”方法?
【发布时间】:2011-07-10 07:27:48
【问题描述】:

这只是一个命名约定?为什么在从 shell 执行程序时不能调用任何方法,例如

$> java myPackage.MyClass.myOwnEntryPoint(String[] str)

【问题讨论】:

    标签: java entry-point


    【解决方案1】:

    main 方法是 java 程序用于运行 Java 应用程序(相对于小程序或其他东西)寻找的入口点。据我所知,没有办法告诉java 寻找不同的方法,所以这不仅仅是一个命名约定;如果你想让你的应用程序运行(无论如何通过标准的java 工具),你想给它一个带有适当签名的main 方法。 (您可以使用静态初始化程序玩游戏,但这完全是另一回事。)

    main 这个名字继承自 C,但它不仅仅是一个约定。

    【讨论】:

      【解决方案2】:

      是的,这是一个命名约定,继承自C。这样做的好处是,通过查看代码很容易找出哪个方法应该是main方法。

      【讨论】:

      • 不是只是一个约定,不是吗?我的意思是,当你运行程序时(通过java),这就是它所寻找的......
      • @T.J.克劳德:是的,这是真的。但是您可以编写自己的程序启动器,它会加载一个类并运行方法myPersonalMain()。这就是为什么它“只是一个约定”——尽管它是许多工具(不仅仅是java)使用的一个重要约定。
      • @T.J.:嗯,有不同种类的代码转换。破坏一些只会激怒其他程序员,而另一些则必须遵循才能使代码完全正常工作。后者的另一个例子是 setter 和 getter 的命名约定。
      • 我明白你在说什么。对我来说,如果它被硬编码到像java 这样的绝对中心工具中,那不是约定,而是要求。 :-) 但是@sleske 有一个好点:您可以编写自己的程序启动器,使用不同的名称。
      猜你喜欢
      • 2023-03-27
      • 2010-10-30
      • 2012-06-02
      • 2012-12-28
      • 2014-09-10
      • 2010-10-14
      • 2014-11-07
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多