1、環(huán)境已經(jīng)相關(guān)資源準(zhǔn)備
很多人再使用Ubuntu來編譯OpenJDK绵载,當(dāng)時我也嘗試了一下,但是編譯過程中遇到各種軟件安裝的問題,所有我使用的是CentOS7娃豹,在編譯之前焚虱,需要準(zhǔn)備相關(guān)的資料:
- JDK1.7源碼鏈接:http://pan.baidu.com/s/1dFyCUYl 密碼:ds8z
- JDK1.6安裝包鏈接:http://pan.baidu.com/s/1o8MbmNS 密碼:vp8j
注意:需要使用低版本的JDK編譯高版本的openjdk
2、軟件安裝
1懂版、yum install alsa-lib-devel
2鹃栽、yum install cups-devel
3、yum install libX*
4躯畴、yum install gcc gcc-c++
5民鼓、yum search libc++
6、yum install libstdc++-static
7蓬抄、yum -y install ant
3丰嘉、解壓源碼,配置腳本
- 切換到 root 用戶嚷缭,我是將openjdk源碼解壓到 /opt 目錄下饮亏,然后安裝 jdk1.6 。
- 編寫編譯的腳本
vim ~/.bashrc
腳本內(nèi)容入下(關(guān)于腳本可以參考《深入理解Java虛擬機規(guī)范》):
unset CLASSPATH //JAVA_HOME和CLASSPATH在編譯前需要取消
unset JAVA_HOME
//設(shè)定語言選項
export LANG=C
//設(shè)置jdk1.6的路徑
export ALT_BOOTDIR=/usr/java/jdk1.6.0_45
export ALT_JDK_IMPORT_PATH=/usr/java/jdk1.6.0_45
//允許自動下載
export ALLOW_DOWNLOADS=true
//并發(fā)線程數(shù)阅爽,和cpu內(nèi)核數(shù)相同
export HOTSPOT_BUILD_JOBS=1
export ALT_PARALLEL_COMPILE_JOBS=1
export SKIP_COMPARE_IMAGES=false
//使用預(yù)編譯頭
export USE_PRECOMPILED_HEADER=true
//需要編譯的內(nèi)容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=false
export BUILD_CORBA=false
export BUILD_JAXWS=false
export BUILD_HOTSPOT=true
export BUILD_JDK=true
//設(shè)置
BUILD_DEPLOY=false
BUILD_INSTALL=false
//編譯的版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=false
export DEBUG_NAME=debug
//編譯結(jié)果存放的路徑
export ALT_OUTPUTDIR /home/holmes/openjdk/bulid
執(zhí)行命令行:
source ~/.bashrc
在進(jìn)入到 /opt/openjdk 目錄下路幸,執(zhí)行make sanity 檢查,如果沒有問題付翁,執(zhí)行make all 編譯openjdk简肴。
4赖淤、編譯問題解決
當(dāng)時在編譯的時候揖庄,遇到了下面問題:
Error: time is more than 10 years from present: 1120165200000
遇到該問題娄蔼,需要修改下面文件:
jdk/src/share/classes/java/util/CurrencyData.properties
將里面得日期修改為10年之內(nèi)就OK躺苦。
5描函、參考鏈接
CentOS7下編譯openjdk:http://blog.csdn.net/zitong_ccnu/article/details/50149757
6锨并、自我介紹
我是何勇冯凹,現(xiàn)在重慶豬八戒龟劲,多學(xué)學(xué)9刍啊S杞琛!