CentOS7下编译JDK12
引言
想要探究JVM的内部实现原理,最直接的方式就是编译一套自己的JDK,这样我们可以通过阅读和跟踪JDK源码来了解它的运行机理
除此之外,JDK中很多方法都是本地方法(Native),因此也可以通过这样的方式知道这些方法的运行机理
编译前的环境配置
由于在Windows下编译稍微有些麻烦,因此选择在Liunx系统上编译
系统截图如下:
gcc/g++的升级
由于该系统自带的gcc/g++版本过低(4.8.5),因此需要升级gcc/g++
这里给出一个便捷的方法:
bash> yum install centos-release-scl
bash> yum install devtoolset-9-gcc* # 注:这里9是gcc的大版本号,可以换成其他版本
bash> scl enable devtoolset-9 bash
bash> mv /usr/bin/gcc /usr/bin/gcc-4.8.5
bash> ln -s /opt/rh/devtoolset-9/root/bin/gcc /usr/bin/gcc # 替换原来的gcc
bash> mv /usr/bin/g++ /usr/bin/g++-4.8.5
bash> ln -s /opt/rh/devtoolset-9/root/bin/g++ /usr/bin/g++ # 替换原来的g++
bash> gcc --version
bash> g++ --version
JDK的升级
注意:要编译大版本号为N的JDK,需要另外准备大版本号至少为N-1的已编译好的JDK
笔者的yum源更新之后,JDK版本也不过是1.8,因此,我们需要准备一个JDK11
JDK11也是LTS版本,使用率仅次于1.8,因此选择12作为编译目标是比较好的
要升级JDK,首先卸载自带的JDK