1. 程式人生 > 實用技巧 >編譯Open JDK原始碼

編譯Open JDK原始碼

1.實驗環境準備

作業系統:Ubuntu 18.04.1 LTS
編譯JDK版本:OpenJDK12

1.1下載OpenJDK原始碼

前往官網自行下載
http://jdk.java.net/java-se-ri/12
進入頁面後點擊zip file下載對應原始碼壓縮包
在這裡插入圖片描述
解壓到任意目錄
在這裡插入圖片描述

1.2下載安裝gcc編譯器

sudo apt-get install build-essential
驗證安裝:gcc –version,出現版本號說明驗證成功

在這裡插入圖片描述

1.3 安裝Bootstrap JDK

sudo apt-get install openjdk-11-jdk
假設要編譯大版本號為N(這裡是12)的JDK,我們還要另外準備一個大版本號至少為N-1的、已經編譯好的JDK,這是因為OpenJDK由多個部分(HotSpot、JDK類庫、JAXWS、JAXP……)構成,其中一部分(HotSpot)程式碼使用C、C++編寫,而更多的程式碼則是使用Java語言來實現,因此編譯這些Java程式碼就需要用到另一個編譯期可用的JDK,官方稱這個JDK為“Bootstrap JDK”。編譯OpenJDK 12時,Bootstrap JDK必須使用JDK 11及之後的版本。

1.4 安裝依賴庫

工具庫名稱安裝命令
FreeTypeThe freeType Projectsudo apt-get install libfreetype6-dev
CUPSCommon UNIX Printing Systemsudo apt-get install libcups2-dev
X11X Windows Systemsudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
AlSAAdvanced Linux sound Architecturesudo apt-get install libasound2-dev
libffiPortable Foreign Function Interface Librarysudo apt-get install libffi-dev
AutoConfExtensible Package of M4 Macrossudo apt-get install autoconf

2.進行自動配置

進入jdk原始碼根目錄執行命令:bash configure
configure命令承擔了依賴項檢查、引數配置和構建輸出目錄結構等多項職責,如果編譯過程中需要的工具鏈或者依賴項有缺失,命令執行後將會得到明確的提示,並且給出該依賴的安裝命令,我們只需根據提示再安裝對應依賴即可。

3.開始進行全量編譯

執行命令:make all
使用4核8G配置全量編譯整個OpenJDK 12大概需近15分鐘時間。
在這裡插入圖片描述
出現finished building代表編譯完成,此時在“build/配置名稱/jdk“目錄下就可以看到完整的編譯結果。

4.驗證

進入jdk目錄執行:./java -version
在這裡插入圖片描述