Ununtu14.04编译Jdk1.7
编译环境
x86_64的Ubuntu14.04
Linux bandaoti-VirtualBox 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
所需资源
编译前需要先下载jdk,因为有部分java需要编译,我下载的是jdk6。当然jdk7的源码是必须下载的,在resource文件夹下。
[百度云盘JDK资源]
安装所需插件
sudo apt-get install -y build-essential gawk m4 \
libasound2-dev libcups2-dev libxrender-dev \
xorg-dev xutils-dev x11proto-print-dev binutils \
libmotif3 libmotif-dev
编译脚本(build.sh)
!/bin/bash
#设置语言
export LANG=C
export ALT_BOOTDIR=~/jdk1.6
#允许自动下载依赖包
export ALLOW_DOWNLOADS=true
#使用预编译头文件,不加这个编译会更慢
export USE_PRECOMPILED_HEADER=true
#要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOSTPOT=true
export BUILD_JDK=true
#要编译的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
#把它设置为FALSE可以避免javaws和浏览器Java插件之类的部分build
BUILD_DEPLOY=false
#把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖
#但即便不build出它也已经得到完整的JDK镜像,所以还是不用build它
BUILD_INSTALL=false
#存放编译结果
export ALT_OUTPUTDIR=~/jdk7/build
unset CLASSPATH
unset JAVA_HOME
make 2>&1 | tee $ALT_OUTPUTDIR/build.log
配置编译环境
- 卸载原有jdk版本
sudo apt-get autoremove openjdk*
- 配置Jdk1.6
将jdk6复制到‘家’目录,解压jdk
./jdk-6u45-linux-x64.bin
mv jdk1.6.0_45 jdk1.6
ln -s ~/jdk1.6/bin/java /usr/bin/java
安装ant
sudo apt-get install ant
- 修改源码时间
修改CurrencyData.properties(路径:jdk/src/share/classes/java/util/CurrencyData.properties)
修改108行
AZ=AZM;2017-12-31-20-00-00;AZN
修改381行
MZ=MZM;2017-06-30-22-00-00;MZN
修改443行
RO=ROL;2017-06-30-21-00-00;RON
修改535行
TR=TRL;2017-12-31-22-00-00;TRY
修改561行
VE=VEB;2017-01-01-04-00-00;VEF - 执行编译
这个过程可能需要很长时间(我执行了大概一个小时)
sh build.sh
测试
执行
~/jdk7/build/bin/java -version
输出结果
openjdk version "1.7.0-internal-debug"
OpenJDK Runtime Environment (build 1.7.0-internal-debug-bandaoti_2018_01_30_16_46-b00)
OpenJDK 64-Bit Server VM (build 24.75-b04-jvmg, mixed mode)
* 由于查询的页面太多,不宜整理参考的文档,见谅!*