我今天看了java的一本书,上讲了提了一下java的启动过程,但是没有详细的讲,又没有在网上搜到。他说有什么链接、加载、初始化,但是我完全不知道,请问那位高手能告诉我具体的启动问题吗,谢谢!

解决方案 »

  1.   

    可以看看JVM JAVA虚拟机的工作原理
      

  2.   

    首先,操作系统通过所设置的环境变量PATH来找JRE,找到JRE后,根据运行java.exe时传递过来的参数(即要运行的程序类名),加载jvm.dll,把控制权交给jvm.dll。然后,jvm.dll进行初始化,分配内存等等动作,然后在CLASSPATH路径中寻找class,找到class后,寻找class中的Main函数入口,同时JRE中的ClassLoader会到rt.jar中加载基础类库。当程序执行过程中需要使用基础类库以外的类库时,ClassLoader负责调用其它类库,在调用时,会按照环境变量CLASSPATH指定的路径进行搜索,放在CLASSPATH前面的类库先被搜到。
      

  3.   

    加上 -verbose 开关观察类库和共享库的加载过程
    c:\jdk1.5.0_03\bin\java.exe   -verbose Jceng