谁在java中调用main函数?

时间:2010-10-16 16:08:08

标签: java

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

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

7 个答案:

答案 0 :(得分:18)

Java虚拟机。

答案 1 :(得分:10)

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

在所有情况下,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函数的函数。

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

答案 2 :(得分:2)

通过example调用main()这是一个不错的JNI_CreateJavaVM

答案 3 :(得分:0)

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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