首页 > 代码库 > 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