Ubuntu上编译 openjdk 源码
编译 openjdk 源码能够获得两种版本的 jdk,一种是 debug 版本,还有一种是 product 版本
虚拟机大部分参数可以在 product 版本上直接操作,但是跟踪本地代码生成的具体过程相关参数信息(如 -XX:PrintIdealGraphLevel=2
等),必须在 debug 版本的 openjdk 才能执行。
两种版本的编译方式仅仅在下面所述的第 5 步有差别
1 安装 mercurial工具
sudo apt-get install mercurial
2 安装必要的依赖
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif-dev ant
3 获取 jdk9 源码
hg clone http://hg.openjdk.java.net/jdk9/jdk9
cd jdk9
sudo chmod u+x get_source.sh
./get_source.sh
4 安装 bootstrap jdk(本机使用的 jdk 版本)
该版本一般要大于等于 9(编译的jdk版本号)-1=8 ,最好是 8u 以上版本
sudo apt-get install openjdk-8-jdk
查找 jdk 安装目录
whereis jdk
5 配置
如果是构建 product 版本的jvm
bash configure
在目录: build/linux-x86_64-normal-server-release
下
如果是构建 fastdebug 版本的 JVM
bash configure --enable-debug
在目录: build/linux-x86_64-normal-server-fastdebug
下
6 编译
make all