下载源码
- 选择openjdk官网下载
- 从github获取代码,在Github有很多维护了跟openjdk的镜像仓库,但是我们可以使用最常用的git来获取代码,地址 https://github.com/AdoptOpenJDK/openjdk-build
阅读源码工具
C/C++ ,推荐使用VSCode ,免费也好用
快捷键 Ctrl + p , Ctrl + e搜索具体文件
main方法入口
jvm由c,c++写的,我们首先需要找到main,搜索到main.c进入main方法中,省略无关紧要的代码,只留了调用JLI_Launch,我们顺着调用主线慢慢摸索下去
main.c
int
main(int argc, char **argv) {
//.... 省略无数行
return JLI_Launch(margc, margv,
jargc, (const char**) jargv,
0, NULL,
VERSION_STRING,
DOT_VERSION,
(const_progname != NULL) ? const_progname : *margv,
(const_launcher != NULL) ? const_launcher : *margv,
jargc > 0,
const_cpwildcard, const_javaw, 0);
}
JLI_Launch 方法
于是进入到 java.c JLI_Launch方法中 ,也还是构造jvm运行需要的一些环境参数,具体步骤代码下放进行了说明