Java虚拟机是Java开发者最常使用的平台,了解其中的运行原理可以帮助我们成为更好的开发者、遇到问题更快解决。对于很多虚拟机知识点,大多数人通常是通过看书或文章来了解相关知识的。这样的缺点是一个知识经过了两次信息理解传递,可能导致信息不准,那么为什么不自己去探究虚拟机的实现原理呢。了解自己常使用的工具的原理,便于更好的使用工具,就像更了解轮胎的赛车手能更好地驾驶汽车、更了解锅和菜刀的厨师可以练出更好的厨艺。而了解虚拟机的最直接的方式就是去构建、debug、开发它!
下载代码
openjdk的代码在 mercurial 中,下载起来很慢。我们使用github上的mirror即可,这里选择了一个比较新的jdk14分支,代码比较多,下载时间会稍长一些。
git clone https://github.com/openjdk/jdk14u
编译
为了构建虚拟机、以及debug调试,需要对代码进行编译。
编译依赖
编译依赖Xcode,通过AppStore搜索下载安装就可以。
编译jdk需要一个低一些版本的jdk作为boot jdk,对于jdk14先到 jdk官网 下载安装一下jdk13
然后安装编译需要的一些依赖包
brew install autoconf freetype ccache
开始编译
#首先cd到代码目录中 cd jdk14u # 进行configure bash configure --with-debug-level