Chinaunix首页 | 论坛 | 博客
  • 博客访问: 612022
  • 博文数量: 69
  • 博客积分: 1891
  • 博客等级: 上尉
  • 技术积分: 1359
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-20 23:38
文章分类

全部博文(69)

文章存档

2012年(46)

2011年(23)

分类: Java

2012-04-12 23:44:41

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

阅读(4973) | 评论(7) | 转发(0) |
0

上一篇:Linux系统文件详解

下一篇:Float二进制存储

给主人留下些什么吧!~~

-小Y头-2012-04-13 23:51:42

openjdk和sunjdk?哪个好些啊???

夏冰软件2012-04-13 17:05:25

写的不错,支持一下