OpenJDK源码解析(一)

5158阅读 7评论2012-04-12 kenvifire
分类:Java

java.c


main函数 

1、取得_JAVA_LAUNCHER_DEBUG环境变量,如果设置了该变量,则设置_launcher_debugJNI_TURE 

2、SelectVersion(argc, argv, &main_class); 

确保指定版本的jre在运行 

3、创建可执行环境CreateExecuteEnvironment 

     3.1 GetJREPath 查找jre的路径 

     3.2 EnsureJreInstallaation 

4、加载JVM 

LoadJavaVM 

5、解析参数 

TralslateApplicationArgs 

SetClassPath 

ParseArguments 

SetJavaCommandLineProp 

SetJavaLauncherProp 

SetJavaLauncherPlatformProps 

6show splash screen 

7、清理环境 

UnsetEnv 

JLI_MemFree 

8、通过新新线程创建JVM并调用JavaMain函数 

 

JavaMain 函数 

1、初始化JVMInitializeJVM 

2、打印版本信息并退出printVersion,或者打印版本信息并继续showVersion 

3、如果没有指定class文件或者jar文件,打印使用方法,并退出 

4、查找mainClassNameGetMainClassName 

5、加载mainClassLoadClass 

6、取得main方法的修饰符,通过GetMethodID调用getModifiers取得mod 

7、判断mod是否是public 

8、调用mainClassmain方法 

9、断开当前线程与Java虚拟机之间的连接,释放该线程占用的所有java监视程序 

10、卸载虚拟机,DestroyJavaVMDestroyJavaVM

上一篇:Linux系统文件详解
下一篇:Float二进制存储

文章评论