Ubuntu 14.04 编译 openjdk-7u75
1.安装好虚拟机之后下载jdk源码和ant上传到服务器或者使用命令安装
sudo apt-get install ant
sudo apt-get install openjdk-6-jdk
按照源码中README-builds.html中介绍编译源码的jdk要求为1.6,自己试着用1.8测试编译会报错。
2.修改配置文件:vi /etc/profile
//按照自己路径添加一下内容
JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
ANT_HOME=/usr/local/software/ant
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin
export JAVA_HOME ANT_HOME JRE_HOME CLASS_PATH PATH
保存退出并使生效
生效命令:source /etc/profile
验证:java -version
ant -version
3.安装相关的插件:
安装 gcc、g++、make等
sudo apt-get install build-essential
安装ant 1.7以上
sudo apt-get install ant
安装 XRender
sudo apt-get install libxrender-dev
sudo apt-get install xorg-dev
安装 alsa
sudo apt-get install libasound2-dev (daozhe)安装
安装 Cups
sudo apt-get install libcups2-dev
安装零碎的工具包
sudo apt-get install gawk zip libxtst-dev libxi-dev libxt-dev
4.编译脚本
进unzip解压之后的源码的openjdk目录下
生成脚本:touch build.sh
生成编译文件夹:mkdir build
build.sh添加内容如下:其中路径安装自己实际安装路径修改
##language##
export LANG=C
#export ALT_BOOTDIR=/usr/local/software/jdk
export ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk-amd64
## auto download ##
export ALLOW_DOWNLOADS=true
## pre compiled ##
export USE_PRECOMPILED_HEADER=true
## content ##
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOSTPOT=true
export BUILD_JDK=true
## edition ##
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
## plugin ##
BUILD_DEPLOY=false
## ##
BUILD_INSTALL=false
## build location ##
export ALT_OUTPUTDIR=/usr/local/software/openjdk/build
unset CLASSPATH
unset JAVA_HOME
make sanity
#makeARCH_DATA_MODEL=64
#BUILD_JAXWS=false
#BUILD_JAXP=false
make 2>&1 | tee $ALT_OUTPUTDIR/build.log
5.编译jdk源码
5.1 编译前务必要修改jdk/src/share/classes/java/util/CurrencyData.properties
把文件中时间增加十年如下:TR=TRL;2004-12-31-22-00-00; 改成 TR=TRL;2014-12-31-22-00-00;
5.2 修改虚拟机make文件hotspot/make/linux/Makefile
这个会导致编译jvm失败,报Err 2,不支持的操作系统,原因是不支持当前linux内核版本
hotspot/make/linux/Makefile234行
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
改为
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
参考博客:
https://blog.csdn.net/u011521890/article/details/52197723
https://www.jianshu.com/p/cd0e66e864a0
耽误了不少时间,终于成功记录一下。
反思:没有仔细看参考文档重复踩坑了,耽搁不少时间。