在centos7下编译openjdk8

1. [操作系统]: CentOS7 64位

    BootStrap JDK: 1.7.0(据说jdk8)


Jdk7安装(如果当前环境没安装jdk7的情况下)

下载地址:https://download.****.net/download/mrprefect/11041354

首先在开始安装之前需要安装编译环境

yum -y install zlib zlib-devel
 yum -y install bzip2 bzip2-devel
 yum -y install ncurses ncurses-devel
 yum -y install readline readline-devel
 yum -y install openssl openssl-devel
 yum -y install openssl-static
 yum -y install xz lzma xz-devel
 yum -y install sqlite sqlite-devel
 yum -y install gdbm gdbm-devel
 yum -y install bzip2 bzip2-devel
 yum -y install ncurses ncurses-devel
 yum -y install readline readline-devel
 yum -y install openssl openssl-devel
 yum -y install openssl-static
 yum -y install xz lzma xz-devel
 yum -y install sqlite sqlite-devel
 yum -y install gdbm gdbm-devel
 yum -y install tk tk-devel
 yum -y install libffi-devel 
 yum groupinstall "Development Tools" 
 yum install libXtst-devel libXt-devel libXrender-devel
 yum install cups-devel
 yum install alsa-lib-devel cups-devel libX* gcc gcc-c++ freetype-devel libstdc++-static ant make
 
 
yum install ccache(这个yum安装不了,这个是提交编译速度的,不安装速度慢一些,不影响编译)

安装完成之后执行

//安装源码仓库管理工具mercurial
yum install mercurial


cd /usr/java
tar -zxvf jdk7u-dev-b46995c8076a.tar.gz
cd ../
//使用(mercurial)hg命令下载openjdk源码
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u openjdk8

cd openjdk8
//执行命令下载源码
sh get_source.sh 


在下载源码时会因为网络原因,反复几次都中途报错下不完。
就在这种等待时间不能确定,而且运行结果又未知的情况下

所以我们需要

#!/usr/bin/bash

hg clone http://hg.openjdk.java.net/jdk9/jdk9

while [ $? -ne 0 ]
do
    hg clone http://hg.openjdk.java.net/jdk9/jdk9
done

还要对下载下来的 openjdk8/get_sources.sh文件进行更改

# Get clones of all absent nested repositories (harmless if already exist)
sh ./common/bin/hgforest.sh clone "[email protected]"

while [ $? -ne 0 ]
do
    sh ./common/bin/hgforest.sh clone "[email protected]"
done

# Update all existing repositories to the latest sources
sh ./common/bin/hgforest.sh pull -u

while [ $? -ne 0 ]
do
    sh ./common/bin/hgforest.sh pull -u
done

其实就是多次执行sh get_source.sh,脚本没有进行测试,如果不能用可以手动执行命令,一致到没有警告为止。

 

然后可以愉快的开始编译了,首先给confiure赋予可执行权限

 chmod +x configure 
bash ./configure --with-target-bits=64 --with-boot-jdk=/usr/java/jdk1.7.0_80/ --with-debug-level=slowdebug --enable-debug-symbols ZIP_DEBUGINFO_FILES=0

以上的参数简单作一些说明:
–with-target-bits=64 :指定生成64位jdk;
–with-boot-jdk=/usr/java/MYBOOTJDK_1.7/:启动jdk的路径;
–with-debug-level=slowdebug:编译时debug的级别,有release, fastdebug, slowdebug 三种级别;
–enable-debug-symbols ZIP_DEBUGINFO_FILES=0:生成调试的符号信息,并且不压缩
 

进行make编译

make clean (多次编译,清除之前的数据)
make all ZIP_DEBUGINFO_FILES=0 

然后就一直等待程序编译成功就行了

在centos7下编译openjdk8