我的博客原文:全網最新最簡單的 OpenJDK13 代碼編譯java
最近因寫文章須要查看 JVM 源碼,有時代碼邏輯不是很清晰,找半天,趁國慶假期,抽空下載了 OpenJDK13 搭建了 JVM debug 環境,把操做記錄寫在這篇文章裏,讓有須要的朋友能夠參考,少踩坑。設計模式
我是在 Ubuntu 18.04 下編譯的,不是在 Windows,建議不在 Windows 下折騰,會遇到比在 Linux 環境下多得多的問題。若是你電腦也是 Windows,能夠像我這樣,安裝個 VMware 虛擬機軟件,在裏面裝個 Ubuntu 系統,在虛擬機裏面玩,這 2 個軟件在官網下載就行,固然若是懶得去找也能夠在個人公衆號後臺回覆: 虛擬機
獲取 VMware 軟件和 Ubuntu 18.04 鏡像。bash
安裝 Ubuntu 虛擬機就不在這篇文章說了,網上有相關的資料。網絡
平時咱用的代碼管理工具大多數是 Git,OpenJDK 並非,而是用 Mercurial 管理工具,因此咱們要安裝它。經過下面命令安裝。併發
sudo apt-get install mercurial
複製代碼
安裝完代碼管理工具後,咱們就能夠下載 OpenJDK13 的源碼了,使用以下命令便可下載。這個過程根據網絡情況,須要的時間不一,我下載花了十來分鐘。異步
hg clone http://hg.openjdk.java.net/jdk/jdk13/
複製代碼
嗯,我就是這樣乾等了十來分鐘,由於具體的官方操做文檔也在裏面,沒下載下來沒法看,網上也找不到相關的 Ubuntu 18 編譯 OpenJDK13 的文章,因此不知道具體要安裝哪些依賴。如今你看到這篇文章,能夠不用幹等着了,接下來步驟 2 和 3 不依賴源代碼,能夠繼續操做。工具
這一部分是查看了官方文檔,作了總結,官方文檔裏面是按軟件區分的,那樣一個命令一個命令敲有點繁瑣,就把它整合成一個命令,執行就完了,知足有些朋友想盡快編譯完,少些多餘的東西。ui
sudo apt-get install libfreetype6-dev libcups2-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev libasound2-dev libffi-dev autoconf gcc clang libfontconfig1-dev
複製代碼
想了解這些依賴軟件是幹嗎用的,能夠看看官方文檔,文檔的位置以下圖。spa
這個在文檔裏面稱爲 Boot JDK,就是編譯時須要上一個版本的 JDK 作爲基礎,通常是使用 N-1 版本,好比編譯 OpenJDK8 就使用 JDK7 做爲 Boot JDK,咱們這裏是編譯 OpenJDK13,因此使用的是 JDK12。也是執行下面命令就搞定。操作系統
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-12-jdk
複製代碼
安裝完能夠經過 java -version
來驗證一下是否成功安裝。見到以下結果就妥妥的。
執行完上面步驟,那麼恭喜你,如今就能夠開始編譯了。
咱們安裝了上面那麼多東西,須要來檢查一下是否是已經安裝完所須要的軟件,經過下面命令來檢查。
bash configure
複製代碼
若是執行過程當中有異常,就根據異常和提示信息,安裝所缺的軟件就行。若是看到下面的結果,那麼再一次恭喜你,全部依賴軟件都準備好了。
最激動人心的時刻到來了,敲入下面的命令,開始編譯吧。這個過程大概須要半個小時,耐心等候,能夠稍做休息,喝杯 82 年的咖啡。
make images
複製代碼
見證奇蹟的圖片。看到下圖說明編譯成功啦。
還須要再穩一點,驗證編譯後的 java 是否可用,經過下面的命令來驗證。
./build/*/images/jdk/bin/java -version
複製代碼
看下圖,出現 "13-internal" 2019-09-17
字樣,咱們編譯出來的 JDK13 能夠用啦。
這標題起得不過度吧,上面版本日期是 2019-09-17,還不到一個月,網上相關資料也沒,就只有官方文檔了(固然也是最好的資料)。跟着步驟走,不會丟
,爲了驗證這句話,還把上面的步驟在我快退休的筆記本上跑了一遍,妥妥的。
咱們這篇文章就講了編譯 OpenJDK13,接下來會再寫一篇怎麼搭建 Debug JVM 環境,能夠關注公衆號,期待下一篇。
推薦閱讀
瞭解Java線程優先級,更要知道對應操做系統的優先級,否則會踩坑
後臺回覆『設計模式』能夠獲取《一故事一設計模式》電子書
以爲文章有用幫忙轉發&點贊,多謝朋友們!