系统环境为ubuntu 16.04,uname -a:
在本文中,要编译的openjdk版本为:openjdk-8u40-src-b25-10_feb_2015。
尝试了编译openjdk-8-src-b132-03_mar_2014,但是失败。网上说,因为ubuntu16.04较新,但是该版本的JDK较老,所以失败。
下面说明编译和debug过程。
make版本
OpenJDK8可以使用”config && make”编译构建,不再使用Ant和ALT_ *环境变量来配置构建。
不过需要GNU make 3.81或更新的版本
安装引导JDK
我使用的引导JDK是jdk-7u76-linux-x64。
安装编译工具类库:
安装gcc、g++、make等sudo apt-get install build-essential
安装XRendersudo apt-get install libxrender-dev
sudo apt-get install xorg-dev
安装alsasudo apt-get install libasound2-dev
Cupssudo apt-get install libcups2-dev
安装零碎的工具包sudo apt-get install gawk zip libxtst-dev libxi-dev libxt-dev
建立编译脚本
–with-boot-jdk:指定引导JDK所在目录,以防其他安装的JDK影响(本机上以前安装了JDK8,并配置了JAVA_HOME指向JDK8);
–with-target-bits:指定编译64位系统的JDK;
为可以进行源码调试,再指定下面三个参数:
–with-debug-level=slowdebug:指定可以生成最多的调试信息;
–enable-debug-symbols ZIP_DEBUGINFO_FILES=0:生成调试的符号信息,并且不压缩;
在openjdk目录下新建build.sh,内容如下:
编译
执行./build.sh
编译完成是这样的:
用GDB测试是否能debug
|
|
openjdk之编译经常出现的问题
openjdk7的编译和debug
编译主要参考:ubuntu14.04 编译openjdk7
debug主要参考:CentOS上编译OpenJDK8源码 以及 在eclipse上调试HotSpot虚拟机源码