谁在java中调用main函数?

public static void main(String[] args) { boolean t=true; System.out.println("Before return"); if(t) return; System.out.println("not execute"); } 

在上面的代码中,当使用return时,它应该返回调用main函数的函数。 究竟是谁调用了mainfunction?

Java类在更大的上下文中执行(特定的JVM,正如其他人所注意到的)。 以下是一些可能性:

  • 你运行java -cp {classpath here} com.example.foo.SomeClass来显式选择要运行的java应用程序启动器的类
  • 你运行java -jar somejar.jar ( 将在.jar文件的清单中选择有问题的类 )
  • 您正在Eclipse中工作并使用debug / run来执行特定类的main()方法。

在所有情况下, main()方法是在给定特定类的情况下执行代码的规范入口点。 从java JVM上的文档:

描述

java工具启动Java应用程序。 它通过启动Java运行时环境,加载指定的类以及调用该类的main方法来实现此目的。 方法声明必须如下所示:

  public static void main(String args[]) 

该方法必须声明为public和static,它不能返回任何值,并且必须接受String数组作为参数。 默认情况下,第一个非选项参数是要调用的类的名称。 应使用完全限定的类名。 如果指定了-jar选项,则第一个非选项参数是包含应用程序的类和资源文件的JAR存档的名称,其中启动类由Main-Class清单标头指示。

Java运行时在三组位置中搜索启动类和其他使用的类:引导类路径,已安装的扩展和用户类路径。

将类名或JAR文件名后的非选项参数传递给main函数。

javaw命令与java相同,但javaw没有关联的控制台窗口。 当您不希望出现命令提示符窗口时,请使用javaw。 但是,如果由于某种原因启动失败,则javaw启动程序将显示一个包含错误信息的对话框。

你说:

在上面的代码中,当使用return时,它应该返回调用main函数的函数。

可能没有任何其他调用main()函数的Java函数(实际上通常没有)。 这是宣布一个众所周知的切入点的惯例。 如果启动JVM来运行类的main()方法,那么当main()返回时,JVM将退出,除非在一些特殊情况下,例如,还有其他非守护程序线程正在运行或存在关闭挂钩。

Java虚拟机。

这是通过JNI_CreateJavaVM调用main()的一个很好的例子 。

请参阅运行Java程序 …

JVM使用main()作为程序的起点,就像C ++中的int main()一样。

在JVM调用main方法时同意上述语句,因为它是为了执行类而必须加载的任何类的入口点。

Jvm启动主线程来调用main方法。