一、准备工作
jdk版本 | 说明 |
---|---|
jdk7 | 需要编译过后的jdk7,或openjdk7,这边由于openjdk7在外网下载比较慢,所以从推荐从oracle官方下载linux版的jdk7即可,点此进入下载处,推荐下载jdk-7u80-linux-x64.tar.gz. |
openjdk8源码 | 由于外网地址下载速度慢,所以这里使用码云的下载地址(克隆/下载按钮上,下载zip即可), 点此进入下载处. |
ubuntu14/16 | 点此下载ubuntu16或点此下载ubuntu14 |
二、拷贝进linux,并解压
拷贝并解压openjdk8,用tar -xzvf解压即可,这边解压到了/opt/dev/workspace/clion/openjdk8目录,jdk解压到/opt/dev/java/jdk1.7.0_80,下面是在finalshell里的结构。
三、编译openjdk8
如果是ubuntu14则无需修改openjdk里的文件,如果是ubuntu16,则需要修改/openjdk/hotspot/make/linux/makefiles/adjust-mflags.sh,删除第67行: s/-([][]*)j/-1-j/
如果后续要调试的话,需要安装bear工具(sudo apt-get install bear),生成compile_commands.json文件,接着定位到目录后,执行命令
cd /opt/dev/workspace/clion/openjdk8
sudo bash configure --with-debug-level=slowdebug --with-target-bits=64 --with-jvm-variants=server --with-boot-jdk=/opt/dev/java/jdk1.7.0_80
configure这步首次要执行几次,如果缺少特定的包,则按提示用apt-get安装即可(ubuntu16下,会出现apt-get不到的包,先安装能安装的,前面拿不到的会自动不需要),出现下面步骤则说明成功了。
接着执行编译命令(编译的目的主要是为了后面调试,所以这边只列出了用bear工具编译并生成compile_commands.json)
sudo bear make all DEBUG_BINARIES=true ZIP_DEBUGINFO_FILES=0 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok
编译过程中只要不出现中断错误,就可以成功,如下图(同时也看到生成了compile_commands.json),后续调试部分点此进入。