在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
然后就一直等待程序编译成功就行了