参考:
http://hg.openjdk.java.net/jdk6/jdk6/raw-file/tip/README-builds.html 源码目录/README-builds.html
《深入理解JVM》
在XUbuntu 10.10上以JRL源码构建Oracle JDK 6 update 23 http://rednaxelafx.iteye.com/blog/875957
在ubuntu12.04下build自己的openjdk http://blog.csdn.net/majieyue/article/details/7498119
Linux 下编译自己的 OpenJDK7 包括JVM和JDK API http://blog.csdn.net/kindazrael/article/details/7266314
环境: Ubuntu 12.04 64bit + openjdk7
选择OpenJDK7
因为OpenJDK6的源码是从OpenJDK7某个基线中引出的,然后剥离掉JDK7相关代码,从而得到一份可以通过TCK6的JDK6实现。直接编译JDK7更“原汁原味”一些
。其实这两个版本的编译过程差别不大。
1, 下载源码
<<<<<<<<<<<<<<<<<<<<<<<<<
1,两种方式,一种是源码包;一种是从Mercurial版本库中检出
因为对Mercurial不熟悉,所以直接下载包。
http://download.java.net/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip?q=download/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip
>>>>>>>>>>>>>>>>>>>>>>>>>
2, 安装构建openjdk所需的第三方库————alsa,freetype,cups等
sudo apt-get build-dep openjdk-7
3, 准备Bootstrap JDK
export ALT_BOOTDIR= # 指定bootstrap jdk
sun jdk,openjdk应该都可以,一般安装对应版本的openjdk这样不容易出错。
apt-get install openjdk-7-jdk
4, 设置环境变量
export LANG=C
# unset是linux命令,删除环境变量
unset JAVA_HOME
export ALT_BOOTDIR=/usr/lib/jvm/java-7-openjdk-amd64
export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-7-openjdk-amd64
export BUILD_CORBA=false
5,检查条件是否满足,并构建:
make sanity && make
6,编译完成
#-- Build times ----------
Target all_product_build
Start 2013-03-01 20:32:30
End 2013-03-01 21:13:33
00:19:31 hotspot
00:00:22 jaxp
00:00:30 jaxws
00:19:55 jdk
00:00:45 langtools
00:41:03 TOTAL
-------------------------
执行编译好的jdk:
build/linux-amd64/bin/java -version
http://hg.openjdk.java.net/jdk6/jdk6/raw-file/tip/README-builds.html 源码目录/README-builds.html
《深入理解JVM》
在XUbuntu 10.10上以JRL源码构建Oracle JDK 6 update 23 http://rednaxelafx.iteye.com/blog/875957
在ubuntu12.04下build自己的openjdk http://blog.csdn.net/majieyue/article/details/7498119
Linux 下编译自己的 OpenJDK7 包括JVM和JDK API http://blog.csdn.net/kindazrael/article/details/7266314
环境: Ubuntu 12.04 64bit + openjdk7
选择OpenJDK7
因为OpenJDK6的源码是从OpenJDK7某个基线中引出的,然后剥离掉JDK7相关代码,从而得到一份可以通过TCK6的JDK6实现。直接编译JDK7更“原汁原味”一些
。其实这两个版本的编译过程差别不大。
1, 下载源码
<<<<<<<<<<<<<<<<<<<<<<<<<
1,两种方式,一种是源码包;一种是从Mercurial版本库中检出
因为对Mercurial不熟悉,所以直接下载包。
http://download.java.net/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip?q=download/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip
>>>>>>>>>>>>>>>>>>>>>>>>>
2, 安装构建openjdk所需的第三方库————alsa,freetype,cups等
sudo apt-get build-dep openjdk-7
3, 准备Bootstrap JDK
export ALT_BOOTDIR= # 指定bootstrap jdk
sun jdk,openjdk应该都可以,一般安装对应版本的openjdk这样不容易出错。
apt-get install openjdk-7-jdk
4, 设置环境变量
export LANG=C
# unset是linux命令,删除环境变量
unset JAVA_HOME
export ALT_BOOTDIR=/usr/lib/jvm/java-7-openjdk-amd64
export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-7-openjdk-amd64
export BUILD_CORBA=false
5,检查条件是否满足,并构建:
make sanity && make
6,编译完成
#-- Build times ----------
Target all_product_build
Start 2013-03-01 20:32:30
End 2013-03-01 21:13:33
00:19:31 hotspot
00:00:22 jaxp
00:00:30 jaxws
00:19:55 jdk
00:00:45 langtools
00:41:03 TOTAL
-------------------------
执行编译好的jdk:
build/linux-amd64/bin/java -version