最近阅读了周志明大神新出的《深入理解java虚拟机》,自己动手跟着实践编译了一下jdk源码。这里总结记录一下,便于日后查阅,也给一些尝试的小伙伴一个参考。
首先说一下编译Open JDK源码的要求
1、这里需要提前下载好源码jdk(地址:https://hg.openjdk.java.net/jdk/)。我这里编译的是openjdk 12
由于国内访问十分慢,这里附上网盘链接(链接:https://pan.baidu.com/s/1B0_qPQ9rTEUC_uErnzo_4Q 提取码:d8v0 )
2、由于OpenJDK由多个部分(HotSpot、JDK类库、JAXWS、JAXP...)构成,其中一部分(HotSpot)代码由C、C++编写,而更多地代码则是使用Java语言来实现,因此编译这些Java代码就需要用到另一个编译器可用的JDK,大版本号至少为N-1(如果你编译的版本为N),我这里用的JDK版本为Oracle JDK 11
3、安装相应的依赖(这里说明一下,我是在centos7.8系统上编译的,其他版本的linux系统可能需要的依赖不一样,请视具体系统情况而定)
sudo yum install -y autoconf unzip zip libXtst-devel libXt-devel lino libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel cups-devel fontconfig-devel alsa-lib-devel
准备好上述工作后就可以编译Open JDK啦
先解压压缩包,然后按照个人需要进行编译,这里并发编译数设定为4
tar -zxvf jdk-jdk-12-33.tar.gz
cd jdk-jdk-12-33/
make clean && make dist-clean
bash configure --with-jobs=4
make images
编译完后,结果
进入编译后的jdk目录下,查看jdk版本:
cd build/jdk/bin
./java -version
至此,源码jdk编译完成!