背景
由于工作中需要开发编译器,开始阅读JavaC和JDK源码了解相关过程,并做出相关整理
参考
本文参考ChatGPT相关解释(很多内容都是杜撰,不可信),进行自我理解后整理发出
项目
https://github.com/corretto/corretto-11
入口(src/java.base/share/native/libjli/java.c)
- 入口文件为java.c文件,方法为JavaMain方法,解析接收到的参数
- InitializeJVM,对虚拟机进行初始化
- LoadMainClass 加载主类
- GetStaticMethodID 获取主方法
- CallStaticVoidMethod 调用主方法(就是Java文件中的public static void main方法)