以JDK8为例
jvm启动过程:
- SelectVersion,选择jre版本(主要做jre和当前java程序是否匹配的判断)
- CreateExecutionEnvironment,创建jvm执行环境(确定jvm信息并做初始化工作,如选择最终的数据模型)
- LoadJavaVm,动态加载jvm.so共享库,将相关函数导出并初始化
- ParseArguments,解析命令行参数
- JVMInit,启动流程
- 接下来的过程在新的线程中执行
- 初始化jvm
- 加载java程序中的main函数
- 调用该main函数
截止到目前还是通用过程,不同jdk版本可能会有不同,待完善各jdk区别 TODO

9万+

被折叠的 条评论
为什么被折叠?



