最近打算研究一下 jvm 相關的知識,因此想編譯 OpenJDK 的源碼,一直在Mac上面編譯,可是老是出現莫名其妙的error,還找不到有效的解決方式,因此仍是進入 Ubuntu 下面進行編譯,雖然中間也出現一個問題,可是很快找到了解決方案,大概總共用了 6 分鐘左右就編譯了 OpenJDK8 的源碼,下面記錄一下實踐過程,僅供參考!java
上面即是本次的編譯環境,Ubuntu 是我在 Mac 下面用 virtualbox 建立的,固然也可以使用真正的 Ubuntu 環境。linux
首先咱們得下載 OpenJDK8.0 的源碼,一種方式是經過 hg 來下載,這種方式取決於網絡速度,很慢很慢,有的時候還會中止,還有一種方式就是直接下載源碼的壓縮包,這裏咱們使用第二種方式 openjdk-8u40-src-b25-10_feb_2015.7z ,下載後咱們把它解壓到一個目錄下面。git
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libcups2-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libasound2-dev複製代碼
咱們進入剛剛解壓後的 OpenJDK8.0 根目錄,輸入如下命令:github
bash configure複製代碼
當出現如下內容時就能夠進行編譯了shell
sudo make複製代碼
等待大概 7~8 分鐘就有就能編譯好了。bash
若是出現以上的 error 的話,到
/openjdk/build/linux-x86_64-normal-server-release/下面,找到 Makefile 這個文件,打開它,找到下面這幾行代碼網絡
SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
OS_VERSION := $(shell uname -r)
EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))複製代碼
在 SUPPORTED_OS_VERSION 後面增長 4%,而後保存退出,從新執行編譯命令。oracle
當咱們編譯成功後,咱們得檢驗一下結果如何,進入到下面這個目錄下面 eclipse
/openjdk/build/linux-x86_64-normal-server-release/jdk/bin複製代碼
在 bin 目錄下面,執行jvm
./java -version複製代碼
正常狀況下,咱們編譯後的 openjdk ,會帶有咱們用戶名的,以下所示
而咱們本機一開始安裝的 jdk 則是
經過以上幾個步驟,咱們便完成了OpenJDK8的編譯。
咱們首先下載 Eclipse IDE for C/C++ Developers 這個版本的 eclipse ,這個版本能夠到官網去查找而後下載。咱們打開 eclipse 後,選擇 import ,依次選擇 C/C++ 下面的 Existing Code as makefile Project 內容
點擊 next ,進入到下個頁面,選擇 Linux GCC ,而後導入編譯的 OpenJDK8 的工程便可。
工程目錄。
github: github.com/crazyandcod…
博客: crazyandcoder.github.io
掘金:juejin.im/user/56b96a…