Linux编译OpenJdk1.8

记录在linux编译openjdk过程。

下载源码

下载网址下载gz压缩包到本地。

1
2
3
4
cd /opt/source
wget http://hg.openjdk.java.net/jdk8u/jdk8u-dev/archive/jdk8u-dev.tar.gz
tar zxvf jdk8u-dev.tar.gz
cd jdk8u-dev

或者使用hg克隆到本地,然后下载源码

1
2
3
4
5
cd /opt/source
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
cd /opt/source/jdk8u-dev
#下载源码
sh get_source.sh

安装工具库

安装jdk1.7

编译openjdk1.8时需要一个以安装的jdk环境,因为在编译过程中会使用ant打包java的库文件,所以需要安装jdk,但是在编译1.8时最好使用1.7及以前版本的jdk。

手册上一句话说明:

1
2
3
4
Building JDK 8 requires use of a version of JDK 7 that is at Update 7 or newer. 
JDK 8 developers should not use JDK 8 as the boot JDK,
to ensure that JDK 8 dependencies are not introduced into the parts
of the system that are built with JDK 7.

下载jdk1.7(官网或者openjdk都可以)
mkdir -p /opt/depends/jdk1.7.0_80

安装依赖库

1
yum install libXtst-devel libXt-devel libXrender-devel cups-devel freetype-devel alsa-lib-devel

安装完成后可以进行下一步。

编译openJdk

环境变量

1
2
3
4
export LANG=C
unset JAVA_HOME
export JAVA_HOME=/opt/depends/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin

编译

首先使用configure生成Makefile

1
2
cd /opt/source/jdk8u-dev
./configure --with-boot-jdk=/opt/depends/jdk1.7.0_80 --with-debug-level=fastdebug --with-target-bits=64 --with-num-cores=4

然后使用make编译

1
2
3
4
5
#编译全部模块
make all

#编译最终的jdk和jre及打包相关的jar库
make images

然后使用make all编译openjdk,最后在build文件下会有一个目录linux-x86_64-normal-server-fastdebug,是存放编译结果的。

文章目录
  1. 1. 下载源码
  2. 2. 安装工具库
    1. 2.1. 安装jdk1.7
    2. 2.2. 安装依赖库
  3. 3. 编译openJdk
    1. 3.1. 环境变量
    2. 3.2. 编译