首页 > 代码库 > ubuntu14.04编译openjdk-7u40
ubuntu14.04编译openjdk-7u40
1.ubuntu14.04安装依赖
sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev
2.下载编译软件
1)Bootstrop JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html -->Java SE 7u55
2)Ant: http://ant.apache.org/bindownload.cgi --> apache-ant-1.9.3-bin.zip
3)OpenJDK:https://jdk7.java.net/source.html --> openjdk-7u40-fcs-src-b43-26_aug_2013.zip
3.配置环境变量
vim /etc/profile
export JAVA_HOME=/opt/jdk1.7.0_55
export ANT_HOME=/opt/apache-ant-1.9.3
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
export PATH CLASSPATH
source /etc/profile
4.准备编译脚本build.sh,并放在OpenJDK根目录下
#!/bin/bash
#设置语言
export LANG=C
export ALT_BOOTDIR=/opt/jdk1.7.0_55
#允许自动下载依赖包
export ALLOW_DOWNLOADS=true
#并行编译的线程数,设置为和CPU内核数量一直即可
export HOTSPOT_BUILD_JOBS=6
export ALT_PARALLEL_COMPILE_JOBS=6
#使用预编译头文件,不加这个编译会更慢
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=/usr/cao/openjdk/build
unset CLASSPATH
unset JAVA_HOME
#make sanity && make
make 2>&1 | tee $ALT_OUTPUTDIR/build.log
5.修改build.sh执行权限并进行编译
chmod +x build.sh
./build.sh
最后编译结果如下,由于一开始未开启多线程编译,所以时间略长,仅供参考
#-- Build times ----------
Target debug_build
Start 2014-05-05 22:30:35
End 2014-05-05 22:44:20
00:01:02 corba
00:04:51 hotspot
00:00:13 jaxp
00:00:14 jaxws
00:07:00 jdk
00:00:23 langtools
00:13:45 TOTAL
参考资料:
《深入理解Java虚拟机》第二版第一章
http://blog.csdn.net/myproudcodelife/article/details/24844427