全部博文(69)
分类: Java
2012-04-12 23:44:41
java.c
main函数
1、取得_JAVA_LAUNCHER_DEBUG环境变量,如果设置了该变量,则设置_launcher_debug为JNI_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
6、show splash screen
7、清理环境
UnsetEnv
JLI_MemFree
8、通过新新线程创建JVM并调用JavaMain函数
JavaMain 函数
1、初始化JVM,InitializeJVM
2、打印版本信息并退出printVersion,或者打印版本信息并继续showVersion
3、如果没有指定class文件或者jar文件,打印使用方法,并退出
4、查找mainClassName,GetMainClassName
5、加载mainClass,LoadClass
6、取得main方法的修饰符,通过GetMethodID调用getModifiers取得mod
7、判断mod是否是public
8、调用mainClass的main方法
9、断开当前线程与Java虚拟机之间的连接,释放该线程占用的所有java监视程序
10、卸载虚拟机,DestroyJavaVMDestroyJavaVM