JVM之CentOS7編譯openjdk1.7

1、環(huán)境已經(jīng)相關(guān)資源準備

很多人再使用Ubuntu來編譯OpenJDK,當時我也嘗試了一下,但是編譯過程中遇到各種軟件安裝的問題,所有我使用的是CentOS7,在編譯之前,需要準備相關(guān)的資料:

  1. JDK1.7源碼鏈接:http://pan.baidu.com/s/1dFyCUYl 密碼:ds8z
  2. 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、解壓源碼,配置腳本

  1. 切換到 root 用戶,我是將openjdk源碼解壓到 /opt 目錄下,然后安裝 jdk1.6 。
  2. 編寫編譯的腳本

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

在進入到 /opt/openjdk 目錄下,執(zhí)行make sanity 檢查,如果沒有問題,執(zhí)行make all 編譯openjdk。

4、編譯問題解決

當時在編譯的時候,遇到了下面問題:

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é)?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 編譯前準備 1. 下載openjdk。 官方建議是使用Mercurial來下載代碼,Mercurial是一款免費的...
    山間聽雨者閱讀 1,955評論 0 0
  • 由于各Linux開發(fā)廠商的不同,因此不同開發(fā)廠商的Linux版本操作細節(jié)也不一樣,今天就來說一下CentOS下JD...
    JerichoPH閱讀 771評論 0 4
  • 最近準備閱讀JVM源碼,打算在本機編譯一個Debug版本的JDK,鑒于工作中主要使用JDK7,因此選擇OpenJd...
    allanYan閱讀 1,623評論 3 0
  • 由于各Linux開發(fā)廠商的不同,因此不同開發(fā)廠商的Linux版本操作細節(jié)也不一樣,今天就來說一下CentOS下JD...
    imbird閱讀 791評論 0 1
  • 那兩幅別人送的畫那么難看,畫面五顏六色,筆觸粗制濫造,掛在墻上粗俗刺眼。但是他卻偏要認為那是藝術(shù),當小K把那兩幅大...
    若水Dewlight閱讀 323評論 0 0

友情鏈接更多精彩內(nèi)容