校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Ubuntu如何輕松編譯openJDK詳解

Ubuntu如何輕松編譯openJDK詳解

熱門(mén)標(biāo)簽:地圖標(biāo)注員怎么去做 德州外呼系統(tǒng)排名 百度地圖標(biāo)注備注 威海人工智能電銷(xiāo)機(jī)器人系統(tǒng) 機(jī)器人電銷(xiāo)有什么用 貴州全自動(dòng)外呼系統(tǒng)廠家 福州外呼系統(tǒng)中間件 好看的地圖標(biāo)注圖標(biāo)下載 上海電銷(xiāo)卡外呼系統(tǒng)廠家

前言

花了三天在windows上搞openJDK,對(duì)bash本來(lái)就不熟,加上各種莫名依賴(lài)和腳本里的bug,身心俱疲。最后make all的時(shí)候產(chǎn)生一個(gè)莫名其妙的錯(cuò)誤說(shuō)什么有warning且-Werror置為了true,死活沒(méi)google到-Werror是什么鬼,只好作罷了。

今天本菜鳥(niǎo)突然想起來(lái),朕還有Ubuntu虛擬機(jī),權(quán)且一試,沒(méi)想到輕松成功。

平臺(tái):Ubuntu Version 5.1.30 (3.2.0-98-generic-pae #138-Ubuntu SMP Mon Jan 11 13:11:12 UTC 2016 i686 i686 i386 GNU/Linux)

步驟1:(按照《深入理解Java虛擬機(jī)》中的命令)一鍵下載依賴(lài)

sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print-dev binutils libmotif3 libmotif-dev ant

這里寫(xiě)的不一定全,不過(guò)暫且先裝著,后面如果缺少什么依賴(lài)可以再按提示安裝,一個(gè)佛系程序員的一天就是見(jiàn)招拆招。

openJDK的源代碼有C++也有Java,所以需要一個(gè)Bootstrap JDK去編譯Java的部分。這個(gè)JDK通常是比你要編譯的openJDK早一個(gè)版本的官方JDK,這是官方的README-builds(在第二步中下載下來(lái)的源碼根目錄下)說(shuō)的:

...The general rule is that the bootstrap JDK must be an instance of the previous major release of the JDK.

每一個(gè)版本的README-builds中都會(huì)指明這一版的openJDK需要的Bootstrap JDK具體版本,比如openJDK8需要的是JDK7u7以上的版本,但不能是JDK8:

步驟2:下載源碼

sudo hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
cd jdk8u-dev
chmod 755 get_source.sh
./get_source.sh

用mercurial下載jdk8u的最新源碼。小伙伴如果想下載其它版本的源碼可以去這里browse: http://hg.openjdk.java.net/。這個(gè)下載過(guò)程大約三十分鐘。

如果不想用mercurial,也可以在這里下載zip包:http://jdk.java.net/java-se-ri/8 (在網(wǎng)頁(yè)偏下方RI source code那里):

我在windows上編譯是就是用這個(gè)zip包解壓編譯的,最后失敗了。出于迷信心理,在Ubuntu上我還是決定用mercurial下載,各路大神盡可不必理會(huì)。

步驟3:設(shè)置環(huán)境變量新建一個(gè)setup.sh,把以下的內(nèi)容拷貝進(jìn)去:

export LANG=C

#BootStrap-JDK的安裝路徑,替換為自己bootstrap-JDK的路徑

export ALT_BOOTDIR=/usr/lib/jvm/java-7-oracle-1.7.0.80 

export ALLOW_DOWNLOADS=true

export HOTSPOT_BUILD_JOBS=8

export SKIP_COMPARE_IMAGES=true

#要編譯的內(nèi)容,讀者可以根據(jù)需要自行選擇

export BUILD_LANGTOOLS=true

#export BUILD_JAXWS=false

#export BUILD_JAXP=false

#export BUILD_CORBA=false

export BUILD_HOTSPOT=true

export BUILD_JDK=true

export SKIP_COMPARE_IMAGES=true

BUILD_DEPLOY=false

BUILD_INSTALL=false

#編譯結(jié)果存放的路徑,建議存放在openjdk源碼中build文件夾

export ALT_OUTPUTDIR=/usr/dev/jvm/openjdk/build

#這兩個(gè)環(huán)境變量需要去掉,不然會(huì)出問(wèn)題

unset JAVA_HOME

unset CLASSPATH

運(yùn)行

./setup.sh

設(shè)置一遍就好。

步驟4:進(jìn)行編譯

到下好的openJDK源碼的根目錄下運(yùn)行make,大概需要二三十分鐘。本來(lái)是應(yīng)該運(yùn)行make sanity的,但是我又碰到了這個(gè)錯(cuò)誤……

媽喲什么鬼,搜了一會(huì)無(wú)甚結(jié)果,于是雞賊的跳過(guò)了這一步直接運(yùn)行make,竟然成功了,成功后的輸出長(zhǎng)這樣:

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

標(biāo)簽:岳陽(yáng) 邵陽(yáng) 葫蘆島 撫州 泉州 南陽(yáng) 南陽(yáng) 白城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ubuntu如何輕松編譯openJDK詳解》,本文關(guān)鍵詞  Ubuntu,如何,輕松,編譯,openJDK,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ubuntu如何輕松編譯openJDK詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Ubuntu如何輕松編譯openJDK詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 万安县| 马关县| 中宁县| 天祝| 上高县| 洞口县| 广平县| 基隆市| 获嘉县| 繁峙县| 蛟河市| 吉木萨尔县| 西林县| 邳州市| 遵义县| 车致| 长沙市| 荔波县| 吉隆县| 乌鲁木齐市| 徐水县| 游戏| 阳曲县| 墨江| 讷河市| 遂宁市| 恩施市| 兴文县| 巴塘县| 焦作市| 榆中县| 阿拉善盟| 环江| 湘乡市| 时尚| 临海市| 岱山县| 泽普县| 黄平县| 宜兰县| 雷波县|