openjdk7的编译

来源:互联网 发布:网络摄像头容量计算 编辑:程序博客网 时间:2024/06/01 22:19

第一步安装依赖
执行如下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=6export ALT_PARALLEL_COMPILE_JOBS=6# 比较本次build出来的映像与先前版本的差异。export SKIP_COMPARE_IMAGES=true# 使用预编译头文件,不加这个编译会更慢一些export USE_PRECOMPILED_HEADER=true# 要编译的内容export BUILD_LANGTOOLS=trueexport BUILD_HOTSPOT=trueexport BUILD_JDK=true# 把它设置为false可以避免javaws和浏览器java插件之类的部分的buildBUILD_DEPLOY=false# 把它设置为false就不会build出安装包。因为安装包里有一些奇怪的依赖# 但即使不build出它也已经能得到完整的JDK映像,所以还是别build它好了BUILD_INSTALL=false# 编译结果存放的路径export ALT_OUTPUTDIR=/home/jasper/software/apache/openjdk_7u40/build# 这两个环境变量必须去掉,不然会有很诡异的事情发生unset JAVA_HOMEunset CLASSPATH# 输出日志?make 2>&1 | tee $ALT_OUTPUTDIR/build.log# 编译设置检查# make sanity

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

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

遇到的一些问题:
1、/test_gamma中无法找到gamma
修改文件/home/jasper/software/apache/openjdk_7u40/openjdk/hotspot/make/linux/Makefile
把所有含有gamma的行注释掉(即在行首加#)

2、cc1plus: error: the “stabs” debug format cannot be used with
编译指令换成:
make DEBUG_BINARIES=true all

0 0
原创粉丝点击