0
  1. Web 服务器,例如:Apache Tomcat。
  2. 应用服务器,例如:Weblogic。
  3. EJB 容器。
  4. 安卓java容器。5>所有其他java实现?
4

6 回答 6

1

Usually yes. But no, it is not required ... as eloquently pointed out by this answer ... https://stackoverflow.com/a/2897323/1481262

Also, while instrumenting the code of applications (using the java.lang.instrument package), the execution starts with the premain method before the main is executed. - [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/

于 2013-02-14T03:18:50.677 回答
0

Theoretically, you can write a custom launcher instead of java.exe, like here http://www.codeproject.com/Articles/17352/JVM-Launcher. Take a look at how they invoke 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);

that is, it could be any method

于 2013-02-14T03:56:34.683 回答
0

是的。main当您启动一个 java 程序时,您指定要使用的类,并使用命令行参数调用它的静态方法。

于 2013-02-14T03:08:09.467 回答
0

是的,所有的 java 程序都以 main 开头,尽管每个类都没有必要拥有它自己的 main 函数。

于 2013-02-14T03:09:25.750 回答
0

是的,所有程序都应该以 开头main,这有点像 JDK 和 JRE 之间的合同。

于 2013-02-14T03:12:07.060 回答
0

JRE总是从一个main()方法开始。但是,可以启动 JRE 并使用它来运行多个独立程序。例如,浏览器通常会在同一个 JRE 中运行它的所有小程序。

于 2013-02-14T03:17:13.653 回答