ubuntu 14.04下編譯JDK7

編譯前準備

1. 下載openjdk邑狸。

官方建議是使用Mercurial來下載代碼坪郭,Mercurial是一款免費的赊颠、跨平臺的圾结、分發(fā)源碼的管理工具瑰剃。但由于openjdk源碼是放在國外的服務器上的,下載及其緩慢筝野,所以我建議直接下載源碼壓縮包晌姚。我下載的源碼壓縮包是openjdk7。

openjdk-7u40

2. 解壓源碼壓縮包歇竟,解壓后的目錄結構

3. 安裝jdk的依賴庫

(1)挥唠、如果系統(tǒng)中已經(jīng)安裝了jdk和ant,運行:sudo apt-get install build-essential gawk m4 libasound-devlibcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutilslibmotif3 libmotif-dev .

(2)焕议、如果系統(tǒng)中還未安裝jdk和ant,運行:sudo apt-get install build-essential gawk m4 openjdk-7-jdklibasound-dev libcups2-dev libxrender-dev xorg-dev xutils-devx11proto-print-dev binutils libmotif3 libmotif-dev ant.

說明:安裝的jdk是作為編譯openjdk時的java環(huán)境的宝磨,因為openjdk中大部分代碼還是java的,所以需要一個啟動的jdk盅安,下載的啟動(bootstrap)jdk一定要在jdk6 update 14之后的版本唤锉。需要下載的ant版本必須大于或等于1.7.1.

4. 設置系統(tǒng)的環(huán)境變量,以滿足openjdk的編譯

sudo gedit /etc/bash.bashrc

在/etc/bash.bashrc中增加如下內(nèi)容:


#語言選項這個必須設置宽堆,否則編譯好后會出現(xiàn)一個hashtable的npe錯

export LANG=C

#設置bootstrap JDK的安裝路徑腌紧,必須設置

exportALT_BOOTDIR=/home/java/jdk/jdk1.7.0_45/

#運行自動下載依賴

export ALLOW_DOWNLOADS=true

#

export SKIP_COMPARE_IMAGES=true

#使用預編譯頭茸习,不加這個編譯會慢一些

export USE_PRECOMPILED_HEADER=true

#設置要編譯的內(nèi)容

exportBUILD_LANGTOOLS=true

#export BUILD_JAXP=false

#export BUILD_JAXWS=false

#export BUILD_CORBA=false

export BUILD_HOTSPOT=true

export BUILD_JDK=true

#要編譯的版本

#export SKIP_DEBUG_BUILD=false

#export SKIP_FASTDEBUG_BUILD=true

#export DEBUG_NAME=debug

#把他設置為false可以避開javaws和瀏覽器java插件之類的部分的build

BUILD_DEPLOY=false

#把他設置為false就不會build出安裝包畜隶,因為安裝包里有一些奇怪的依賴,

#但即便不build出它也可以得到完整的jdk映像号胚,所以還是別build它好

BUILD_INSTALL=false

#編譯結果所存放的路徑

exportALT_OUTPUTDIR=/home/fengyu_daniel/fengyu/java/openjdk/

#必須設置

unset JAVA_HOME

unset CLASSPATH


正式編譯階段

1. 進入解壓后的openjdk源碼根目錄:cd /home/openJdk/openJdk/

2. 重定向日志信息籽慢,保留編譯期間的日志:make 2>&1 | tee $ALT_OUTPUTDIR/build.log

3. 檢查之前設置的環(huán)境變量是否正確:make sanity;如果環(huán)境變量設置正確,結果如圖:


編譯前環(huán)境設置檢查結果

4. 接下來進行編譯:make

說明:如果編譯的時候報錯了猫胁,尤其時關于langtools/make/build.xml的錯誤箱亿,可能是因為bootstrap jdk的版本的原因,可以換一個版本低于openjdk的版本弃秆。openJdk7的bug修復届惋。編譯期間出現(xiàn)一個時間的錯誤髓帽,這是openjdk7u40的一個bug,替換源碼目錄下的對應的幾個文件內(nèi)容就可以編譯了,見地址:http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/rev/74a70385c21d#l11.1.編輯比較耗時脑豹,在我本人的筆記本上大約編譯鈴45分鐘郑藏。

5. 編譯成功的結果如圖:

控制臺編譯結果
編譯結果目錄結構

檢測編譯結果

1. 結果路徑下的j2sdk-image目錄下的所有文件就是我們常見的jdk。

2. 進入目標路徑下的j2sdk-image目錄:java -version

如果編譯的jdk沒有錯誤瘩欺,那結果如圖:

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末必盖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俱饿,更是在濱河造成了極大的恐慌歌粥,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拍埠,死亡現(xiàn)場離奇詭異失驶,居然都是意外死亡,警方通過查閱死者的電腦和手機械拍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門突勇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坷虑,你說我怎么就攤上這事甲馋。” “怎么了迄损?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵定躏,是天一觀的道長。 經(jīng)常有香客問我芹敌,道長痊远,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任氏捞,我火速辦了婚禮碧聪,結果婚禮上,老公的妹妹穿的比我還像新娘液茎。我一直安慰自己逞姿,他們只是感情好队腐,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布队贱。 她就那樣靜靜地躺著,像睡著了一般勃刨。 火紅的嫁衣襯著肌膚如雪栋烤。 梳的紋絲不亂的頭發(fā)上谒养,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音明郭,去河邊找鬼买窟。 笑死丰泊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的始绍。 我是一名探鬼主播趁耗,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疆虚!你這毒婦竟也來了苛败?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤径簿,失蹤者是張志新(化名)和其女友劉穎罢屈,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體篇亭,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡缠捌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了译蒂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曼月。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柔昼,靈堂內(nèi)的尸體忽然破棺而出哑芹,到底是詐尸還是另有隱情,我是刑警寧澤捕透,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布聪姿,位于F島的核電站,受9級特大地震影響乙嘀,放射性物質(zhì)發(fā)生泄漏末购。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一虎谢、第九天 我趴在偏房一處隱蔽的房頂上張望盟榴。 院中可真熱鬧,春花似錦婴噩、人聲如沸擎场。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顶籽。三九已至玩般,卻和暖如春银觅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坏为。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工究驴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镊绪,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓洒忧,卻偏偏與公主長得像蝴韭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子熙侍,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容