谁在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函数的函数。 究竟是谁调用了main
function?
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方法。