Java Main 方法在源代码中定义在哪里?

Where is Java Main method defined in source?

请原谅我问这个愚蠢的问题。我在哪里可以找到 java 源代码中的 java 主要方法定义?它不在对象 class 或系统 class 中?那么它是如何以及在哪里定义的呢?

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

Where is Java Main method defined in source?

它在 class 中声明。按照惯例,它是顶级(即非嵌套)public class,但这不是必需的。 (非 public class 会起作用,我认为静态嵌套 class 也会起作用。)

如何找到 main 方法?

  • 使用 grep 或类似搜索应用程序的源代码。

  • 使用您的 IDE 方法搜索功能。

  • 阅读应用程序的用户文档或启动脚本。

  • 在应用程序的 javadoc 的索引中查找 main 方法。

java命令如何找到它?

没有!您指定包含要在 java 命令行上使用的 main 方法的 class 的完全限定 class 名称。或者,您可以在 JAR 文件的清单中设置 Main-Class 属性,这样用户就不需要知道 class 名称。


UPDATE - 如果你在OpenJDK源代码树中寻找加载入口点class的代码,找到main方法并调用它,就可以了在 "jdk8u/jdk/src/share/bin/java.c"。祝您阅读愉快。

它没有在任何地方定义为代码(在标准库中)。

JVM 期望在您 运行 宁 class 时找到它,如果找不到它,您会得到一个错误。因此,如果您想 运行 您的 class.

,则由您创建一个 public static void main(String[] args) 方法

main 方法是 java 中应用程序的入口点。所有 java classes 都打包为将在任何应用程序中使用的库。因此 class 文件用作参考而不是单独的可执行文件。您不能单独执行 java 源代码,因为 java 源代码中不会有任何 main 方法定义。