在java中,我总是需要一个Main类吗?

问题描述 投票:0回答:4

我知道我需要一个 main 方法,但是该 main 方法可以位于 Main 类之外的其他类中吗?

java class program-entry-point
4个回答
9
投票

并非所有 Java 应用程序都需要

main
方法:

您问题的答案取决于您的确切意思。你的意思是一个名为“Main”的类吗?那么,不,根本没有这个要求。

Java 的唯一要求是方法的签名正确。主要方法必须:

  • 公开
  • 成为主要
  • 保持静止
  • 返回类型为void
  • 接受字符串数组作为(唯一)参数

将其添加到文件中的公共类中会更容易,但不是强制性的。它所在的类的名称完全取决于您,尽管许多人会选择“Main”或“Open”之类的名称,只是为了更容易找到它。

如果您希望能够运行您的应用程序,只需双击 .jar 文件,您需要指向包含 main 方法的类(使用:您的应用程序可能包含很多主类,用于内部测试,但只能使用一个来启动实际应用)在清单文件中:Manifest files

在 Java 7 之前,可以通过(ab)使用实例化块来运行没有 main 方法的桌面应用程序,但这在 Java 7 中被删除,因为这不是实例化块的用途。


上面列出的一些规则可能在 Java 的未来版本中放宽。

Java 22 预览了一项功能,可大大简化

main
方法及其包含类的声明。请参阅 JEP 463:隐式声明的类和实例主要方法(第二次预览)


2
投票

没有必要在主类中定义 main 方法。你可以将 main 方法放在任何你想要的地方,只要语法正确即可:

public static void main (String[] args){
//...
} 

1
投票

你绝对不会。

方法本身可以放在任何地方,没有限制。

但是,我个人建议将其放在一个至少包含“Main”之类的类中,因为当其他人查看您的代码时,并且他们没有使用支持跳转到

main
方法的 IDE,人们通常会更容易找到起点。

但是,这只是为了可读性,正如我所说,跳转到

main
通常是/应该是广泛支持的功能


0
投票

是的,尽管 Java 类可以没有 Main 方法,但运行函数需要 Main 方法。不过,它不会运行...

© www.soinside.com 2019 - 2024. All rights reserved.