1.借鑒:
??? [1] 周志明.深入理解java虛擬機[M].北京:機械工業(yè)出版社凫乖,2013.6
2.開始:
????? 1.配置可用源
???????? 剛裝好機器斧散,想運行sudo apt-get update,發(fā)現(xiàn)有些內(nèi)容下載失敗迫横,依賴沒法下載弛说,就沒法進行下一步,所以這是第一步剥哑。
???????? 通過【借鑒】部分可以看下如何配置可用源杯拐,這邊我就上兩張圖。
? ? ? ?? a.首先看一下機器的版本號:使用 sudo lsb_release -a
??????????? 可以看到我這邊的Codename為maverick歪今,所以配置源的時候里面的有些名稱需要跟他一致。
??????? b.接下來配置源摩幔,先備份一下
?????????? sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
??????????? 再更改
? ? ? ? ??? sudo gedit /etc/apt/sources.list
?????????? 接下來上兩張圖彤委,圖片中的部分為需要更改的部分鞭铆,其他的部分全部不用動或衡。圖片中最上邊的四行也不需要更改。
???????? 我這邊貼一下機器Codename為maverick的圖上邊的源车遂。
deb http://old-releases.ubuntu.com/ubuntu maverick main universe restricted multiverse
deb-src http://old-releases.ubuntu.com/ubuntu maverick main universe restricted multiverse
deb http://old-releases.ubuntu.com/ubuntu maverick-security universe main multiverse restricted
deb-src http://old-releases.ubuntu.com/ubuntu maverick-security universe main multiverse restricted
deb http://old-releases.ubuntu.com/ubuntu maverick-updates universe main multiverse restricted
deb http://old-releases.ubuntu.com/ubuntu maverick-proposed universe main multiverse restricted
deb-src http://old-releases.ubuntu.com/ubuntu maverick-proposed universe main multiverse restricted
deb http://old-releases.ubuntu.com/ubuntu maverick-backports universe main multiverse restricted
deb-src http://old-releases.ubuntu.com/ubuntu maverick-backports universe main multiverse restricted
deb-src http://old-releases.ubuntu.com/ubuntu maverick-updates universe main multiverse restricted
????????? 配置源告一段落封断,接下來使用sudo apt-get update 更新一下。
???? 2.準備環(huán)境
? ? ? ? a. 通過mercurial從倉庫拉取源碼舶担,先安裝下mercurial
????????? sudo apt-getinstall mercurial
???????? 接下來是【借鑒】中深入JVM中的內(nèi)容,我想將它下載內(nèi)容放在Download目錄下
????????? cd /usr/kaiser/Download
????????? hg clone http://hg.openjdk.java.net/jdk7u/jdk7u-dev
????????? cd jdk7u-dev
????????? chmod 755 get_source.sh
????????? ./get_source.sh
????????? 順便說一下坡疼,這個過程可能比較耗時,但是我下載的時候用了5分鐘好像衣陶,根據(jù)網(wǎng)絡(luò)狀況不同柄瑰,有可能需要手動下載jdk7u-dev,這個我就不知道了剪况。教沾。
??????? b.jdk安裝
? ? ? ? ? JDK1.7版本下載 找這個地址就找了很久,網(wǎng)上給出的大都是Oracle中最新JDK的版本译断,這邊我使用的版本是:1.7.0_04授翻。也試過使用jdk6編譯,報出的是https向http重定向的錯誤。
? ? ? ? 解壓下載下來的 jdk-7u4-linux-x64.tar.gz堪唐,可以使用右鍵解壓(extract here)巡语,或者使用命令:? tar zxvf jdk-7u4-linux-x64.tar.gz
? ? ????? 解壓之后,將其移動到/usr/lib/jvm目錄下:sudo mv jdk1.7.0_04 /usr/lib/jvm
? ? ? ? ? 如果沒有/usr/lib/jvm目錄就創(chuàng)建一下:sudo mkdir /usr/lib/jvm
????????? 接下來配置環(huán)境變量:(以下為我自己的配置淮菠,根據(jù)JDK路徑和版本而定)
? ? ? ? ?? sudo gedit /etc/profile
?????????? 然后在最后面添加幾個回車男公,填上圖片內(nèi)容即可
????????? 最后別忘了:source /etc/profile
????????? 設(shè)置默認JDK
? ? ? ? ?? sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_04/bin/java 300
?????????? sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_04/bin/javac 300
? ? ? ? ? 完成了合陵,看下jdk版本
??????? c.其他環(huán)境配置
????????? 依照【借鑒】深入JVM中的描述:(因為這邊已經(jīng)安裝jdk1.7.0_04理澎,所以就去除了書中的openjdk-6-jdk)
? ? ? ? ? sudo apt-get install build-essential gawk m4 libasound2-dev libcups2-dev libxrender-dev xorg-dev xutils-dev x11proto-print0dev binutils libmotif3 libmotif-dev ant
? ? ? ? d.系統(tǒng)環(huán)境設(shè)置(參考【借鑒】ubuntu 14.04下編譯JDK7)
? ? ? ? ? sudo gedit /etc/bash.bashrc
????????? 具體的含義在書中和那篇博客中都有詳細說明了,我就不粘貼了曙寡。
??? 3.編譯
? ? ? ? ? ? a.打開openjdk源碼的路徑(這個是我下載后解壓的目錄):cd /home/kaiser/Downloads/jdk7u-dev
? ? ? ? ? ? b.在jdk7u-dev目錄下執(zhí)行: make 2>&1 | tee $ALT_OUTPUTDIR/build.log(執(zhí)行完這個命令糠爬,我以為編譯完成了,但是還沒有)
?????????? c. 執(zhí)行:make
3.大功告成
???? 這個過程也嘗試了很多次举庶,機器換了幾次执隧,jdk版本也換了幾次,ant版本也換了幾次户侥,總之結(jié)果是好的镀琉,過程自己體會。如果你也想編譯個jdk版本蕊唐。那就來吧屋摔,只要不放棄,總會成功替梨。
???? 借鑒了很多前輩的文章博客钓试,總得回報一下社會。個人特別討厭無腦復(fù)制粘貼副瀑,原因是找個東西千篇一律弓熏,還找不到源。