您好,登錄后才能下訂單哦!
[TOC]
最近因寫文章需要查看 JVM 源碼,有時代碼邏輯不是很清晰,找半天,趁國慶假期,抽空下載了 OpenJDK13 搭建了 JVM debug 環境,把操作記錄寫在這篇文章里,讓有需要的朋友可以參考,少踩坑。
我是在 Ubuntu 18.04 下編譯的,不是在 Windows,建議不在 Windows 下折騰,會遇到比在 Linux 環境下多得多的問題。如果你電腦也是 Windows,可以像我這樣,安裝個?VMware?虛擬機軟件,在里面裝個?Ubuntu?系統,在虛擬機里面玩,這 2 個軟件在官網下載就行,當然如果懶得去找也可以在我的公眾號后臺回復: 虛擬機
?獲取?VMware?軟件和?Ubuntu 18.04?鏡像。
安裝 Ubuntu 虛擬機就不在這篇文章說了,網上有相關的資料。
平時咱用的代碼管理工具大多數是 Git,OpenJDK 并不是,而是用 Mercurial 管理工具,所以我們要安裝它。通過下面命令安裝。
sudo?apt-get?install?mercurial
安裝完代碼管理工具后,我們就可以下載 OpenJDK13 的源碼了,使用如下命令即可下載。這個過程根據網絡狀況,需要的時間不一,我下載花了十來分鐘。
hg?clone?http://hg.openjdk.java.net/jdk/jdk13/
嗯,我就是這樣干等了十來分鐘,因為具體的官方操作文檔也在里面,沒下載下來無法看,網上也找不到相關的 Ubuntu 18 編譯 OpenJDK13 的文章,所以不知道具體要安裝哪些依賴。現在你看到這篇文章,可以不用干等著了,接下來步驟 2 和 3 不依賴源代碼,可以繼續操作。
這一部分是查看了官方文檔,做了總結,官方文檔里面是按軟件區分的,那樣一個命令一個命令敲有點繁瑣,就把它整合成一個命令,執行就完了,滿足有些朋友想盡快編譯完,少些多余的東西。
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
想了解這些依賴軟件是干嘛用的,可以看看官方文檔,文檔的位置如下圖。
這個在文檔里面稱為?Boot JDK,就是編譯時需要上一個版本的 JDK 做為基礎,一般是使用 N-1 版本,比如編譯 OpenJDK8 就使用 JDK7 作為 Boot JDK,我們這里是編譯 OpenJDK13,所以使用的是 JDK12。也是執行下面命令就搞定。
sudo?add-apt-repository?ppa:openjdk-r/ppa sudo?apt-get?updatesudo?apt-get?install?openjdk-12-jdk
安裝完可以通過?java -version
?來驗證一下是否成功安裝。見到如下結果就妥妥的。http://www.chacha8.cn/detail/1132398245.html
執行完上面步驟,那么恭喜你,現在就可以開始編譯了。
我們安裝了上面那么多東西,需要來檢查一下是不是已經安裝完所需要的軟件,通過下面命令來檢查。
bash?configure
如果執行過程中有異常,就根據異常和提示信息,安裝所缺的軟件就行。如果看到下面的結果,那么再一次恭喜你,所有依賴軟件都準備好了。
最激動人心的時刻到來了,敲入下面的命令,開始編譯吧。這個過程大概需要半個小時,耐心等候,可以稍作休息,喝杯 82 年的咖啡。
make?images
見證奇跡的圖片。看到下圖說明編譯成功啦。鄭州不孕醫院:http://jbk.39.net/yiyuanzaixian/zztjyy/
還需要再穩一點,驗證編譯后的 java 是否可用,通過下面的命令來驗證。
./build/*/images/jdk/bin/java?-version
看下圖,出現?"13-internal" 2019-09-17
?字樣,我們編譯出來的 JDK13 可以用啦。?
這標題起得不過分吧,上面版本日期是?2019-09-17,還不到一個月,網上相關資料也沒,就只有官方文檔了(當然也是最好的資料)。跟著步驟走,不會丟
,為了驗證這句話,還把上面的步驟在我快退休的筆記本上跑了一遍,妥妥的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。