答案 0 :(得分:1)
通常是的。 但不,这不是必需的......正如这个答案雄辩地指出的那样...... https://stackoverflow.com/a/2897323/1481262
此外,在检测应用程序代码(使用java.lang.instrument
包)时,执行在premain
执行之前以main
方法开始。 - [1] [2]。
[1] http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html
[2] http://dhruba.name/2010/02/07/creation-dynamic-loading-and-instrumentation-with-javaagents/
答案 1 :(得分:0)
是。当你启动一个java程序时,你指定要使用的类,并使用命令行参数调用它的静态main
方法。
答案 2 :(得分:0)
是的,所有java程序都以main开头,尽管每个类都没有必要拥有它的主要功能。
答案 3 :(得分:0)
是的,所有程序都应以main
开头,这类似于JDK和JRE之间的合同。
答案 4 :(得分:0)
JRE always starts from a main()
method。但是,可以启动JRE并使用它来运行多个独立的程序。例如,浏览器通常会运行其所有小程序in the same JRE。
答案 5 :(得分:0)
理论上,你可以编写一个自定义启动器而不是java.exe,就像这里http://www.codeproject.com/Articles/17352/JVM-Launcher一样。看看他们如何调用main
:
//Find the class
jclass jcJclass = psJNIEnv->FindClass(mainClassName);
//Find the main method id
jmethodID jmMainMethod =
psJNIEnv-> GetStaticMethodID(jcJclass, "main", "([Ljava/lang/String;)V");
//Call the main method.
psJNIEnv->CallStaticVoidMethod(jcJclass, jmMainMethod, joApplicationArgs);
也就是说,它可以是任何方法