openjdk7的编译

第一步安装依赖
执行如下shell

# 因为我已经装了ant和jdk(注意这个jdk,所以不再安装)
sudo apt-get install buildessential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev

第二步下载安装bootstrap jdk
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html?ssSourceSiteId=otncn
编译openjdk7所用的bootstrap jdk不能是高版本的,必须要用jdk6(血泪史阿,切记)。
我把它安装在/home/jasper/software/apache/jdk1.6.0_45

第三步下载openjdk7源码
下载地址:http://jdk7.java.net/source.html
下载下来的是一个zip文件,解压即可。
我把它解压到/home/jasper/software/apache/openjdk_7u40

第四步修改CurrencyData.properties的日期
打开文件/home/jasper/software/apache/openjdk_7u40/openjdk/jdk/src/share/classes/java/util/CurrencyData.properties
修改此文件里的所有日期。比如相应的+n年,以保证所有的日期都在最近10年内

第五步设置编译需要的环境变量
执行如下shell

cd /home/jasper/software/apache/openjdk_7u40/openjdk
# Bootstrap JDK的安装路径。必填
export ALT_BOOTDIR=/home/jasper/software/apache/jdk1.6.0_45

# 允许自动下载依赖
export ALLOW_DOWNLOADS=true

# 并行编译的线程数,设置为和CPU内核数量一致即可
export HOTSPOT_BUILD_JOBS=6
export ALT_PARALLEL_COMPILE_JOBS=6

# 比较本次build出来的映像与先前版本的差异。
export SKIP_COMPARE_IMAGES=true

# 使用预编译头文件,不加这个编译会更慢一些
export USE_PRECOMPILED_HEADER=true

# 要编译的内容
export BUILD_LANGTOOLS=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true

# 把它设置为false可以避免javaws和浏览器java插件之类的部分的build
BUILD_DEPLOY=false

# 把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖
# 但即使不build出它也已经能得到完整的JDK映像,所以还是别build它好了
BUILD_INSTALL=false

# 编译结果存放的路径
export ALT_OUTPUTDIR=/home/jasper/software/apache/openjdk_7u40/build

# 这两个环境变量必须去掉,不然会有很诡异的事情发生
unset JAVA_HOME
unset CLASSPATH

# 输出日志?
make 2>&1 | tee $ALT_OUTPUTDIR/build.log

# 编译设置检查
# make sanity

注意查看最后是否有报错,如报错请安装相应的依赖

第六步执行如下shell

cd /home/jasper/software/apache/openjdk_7u40/openjdk
make

PS:请把上文所说的所有shell在一个终端里执行。

你可能感兴趣的:(openjdk7的编译)