Chinaunix首页 | 论坛 | 博客
  • 博客访问: 621746
  • 博文数量: 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

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

上一篇:Linux系统文件详解

下一篇:Float二进制存储

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

kenvifire2012-04-15 21:42:05

煜轩: 不错,楼主现在是干什么的?.....
目前是java开发哦

煜轩2012-04-15 20:52:25

不错,楼主现在是干什么的?

kenvifire2012-04-14 17:23:48

小小小毛驴: - -的确是这样的~~楼主有木有其他的?多发发.....
有哦,后面会慢慢发上来的,经常来逛哦

小小小毛驴2012-04-14 12:30:52

- -的确是这样的~~楼主有木有其他的?多发发

kenvifire2012-04-14 10:28:30

-小Y头-: openjdk和sunjdk?哪个好些啊???.....
openjdk基本上就是sun也就是oracle jdk的开源版本了。