1.準備工作
a. 下載openjdk 7 源代碼 http://www.java.net/download/openjdk/jdk7u6/promoted/b24/openjdk-7u6-fcs-src-b24-28_aug_2012.zip (粘貼鏈接,迅雷可下)
b. 安裝依賴項
我比較懶,沒有去找相關內容,參考了https://www.cnblogs.com/zxfdream/p/5411511.html的內容,其介紹的依賴項中,gawk、m4、openjdk-6-jdk、binutil安裝了,然後就開始安裝了。在centos下面,請用yum search openjdk命令,查找具體的安裝方式。
在ubuntu中有apt-get install build-essential這樣的命令,可以在centos7下使用yum groupinstall “Development Tools”進行安裝相包。依賴項請參看http://blog.csdn.net/qq_18750427/article/details/52038322
c. 環境變量設置
export LANG=C
export ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk.x86_64
export ALT_JDK_IMPORT_PATH=/usr/lib/jvm/java-1.6.0-openjdk.x86_64
export ALLOW_DOWNLOADS=true
export HOST_BUILD_JOBS=4
export USE_PRECOMPILED_HEADER=true
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true
export BUILD_INSTALL=false
export ALT_OUTPUTDIR=/home/cheung/workspace/java/openjdk/build
unset JAVA_HOME
unset CLASSPATH
export WARNINGS_ARE_ERRORS=false
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=true
export DEBUG_NAME=debug
ALT_OUTPUTDIR=*,修改成你的openjdk7所在的路徑的
ALT_BOOTDIR=,ALT_JDK_IMPORT_PATH=是java6的路徑,看位置修改
2.編譯過程
make sanity #檢查
make DEBUG_BINARIES=true #編譯
編譯後 build和build-debug目錄裏面的東西就是了
3.報錯分析
問題1:centos awt.h:38:27: fatal error: X11/Intrinsic.h: No such file or
解決辦法:yum install libXt-devel問題2:fatal error: X11/extensions/XTest.h: No such file or directory
解決辦法:yum install libXtst-devel問題3:do not have access to valid Cups header file
解決辦法:yum install cups-devel.x86_64問題4:Error:./gamma: relocation error:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjava.so: symbol JVM_FindClassFromCaller, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference
解決辦法:第一步:修改文件hotspot/make/linux/Makefile ,去掉文件中所有的test_gamma即可; 第二步:通過vimfind / -name ‘CurrencyData.properties‘
把裏面的時間改在10年之內就可以了問題5:ERROR: FreeType version 2.3.0 or higher is required.
解決方法:yum install freetype-devel.x86_64問題6:Linking vm… /usr/bin/ld: cannot find -lstdc++
解決方法:yum install libstdc++-static問題7:fatal error: X11/extensions/Xrender.h: No such file or directory
解決方法:yum install libXrender-devel.x86_64
更多問題解決方案,請參考http://caoxudong818.iteye.com/blog/1748869