mac編譯openjdk[2020版]


mac 編譯 openjdk 2020版

環境:

系統:macOS Catalina 10.15.4

Xcode版本: 10.15.2

Mercurial版本:5.2.2-macosx10.14

xcode-select:xcode-select version 2373

背景:

目前開發中用的是jdk1.8的版本,本想下載jdk8的openjdk研究一下,奈何編譯過程中出現種種的錯誤導致編譯失敗,搞了快整整一天了(其實也就快9個多小時吧),最后失敗告終(勸退)。但是總不能就這樣算了吧,我直接下載了最新版的openjdk14 [http://hg.openjdk.java.net/jdk/jdk14],越是高版本的openjdk編譯通過的幾率也越大(編譯通過后的jdk14其實也挺香的哈)。

第一步 安裝工具

首先要安裝一下幾個關鍵工具,錯錯錯錯錯,首先,帶上你的電腦找個比較涼爽的地方,台式機性能不是很棒的盡量開下空調,然后安裝一下幾個關鍵工,如果有homebrew的話,會方便很多

brew install mercurial
brew install autoconf
brew install freetype
brew install ccache

# 這個直接命令安裝不需要依賴 homebrew
xcode-select install

第二步 下載源碼

安裝好工具后,就可以開始下載openjdk的源碼了,源碼的下載方式一共有三種(比較推薦github直接下載,一鍵就能下載總是比較快樂的)

  1. 第一種方式是通過mercurial代碼管理工具clone下來
    在你的pc上找個你喜歡的位置,位置在哪不重要,關鍵是只要要有5G左右的空間,因為編譯完成后的文件夾總空間占用將近4個G。

    通過下方這兩條命令找到你的文件夾,開始clone代碼,直到clone完成,這期間經常會發生不可預料的事情導致下載失敗,不建議這個操作,但並不是不能成功,我失敗了,但是我的小伙伴卻成功了。
cd /myfolder/openjdk/
hg clone http://hg.openjdk.java.net/jdk/jdk14 openjdk14
  1. 第二種方式是通過瀏覽器獲取,打開web網站[http://hg.openjdk.java.net/],找到你喜歡的那個jdk版本,我喜歡jdk索引里的jdk14版本[http://hg.openjdk.java.net/jdk/jdk14/],打開這個頁面。

image

發現頁面上都是看不懂的東西了吧,不知道download在哪了對吧,我也不知道在哪。我們直接找到左側的"browse"link標簽,點擊它,可以看到下圖的樣子。

這就是一級目錄的結構,點擊進去,可以看到相關的代碼,在左側的"browse"link標簽下方找到你想要的格式比如 gz,點擊它就可以下載了,直到下載成功為止,下載成功后解壓一下(勸退,下載后文件有時候打不開,並不是每次都這樣,但浪費了時間總是比較興心疼的,因為我沒有學習"時間管理")

image

  1. 第三種方式比較直接了,也是比較熟悉的那個操作。[https://github.com/AdoptOpenJDK/openjdk-jdk14u]直接上github找到你要的版本,我這里使用的是jdk14u的版本,下載成功后解壓一下。

    除了第一種方式不需要解壓外,第二種和第三種方式都需要解壓一下下載成功的壓縮文件。
    然后 cd 進入到解壓后的文件夾根目錄(第一種方式下載的直接進入下載目錄即可)


    進入目錄后可以ls看下文件目錄結構,你喜歡ll查看也行啦,我就舉個栗子,看下是否有個文件叫做 configure 的文件,有的話,不要擔心,這個文件本來就該有的,沒有的話,你可能進錯文件夾或者下載錯文件了。

第三步 執行configure配置命令

sudo ./configure --with-debug-level=slowdebug --disable-warnings-as-errors

執行這個命令可能或報錯提示[sudo: ./configure: command not found],遇到這個錯誤的話就好說了,下方的兩個命令選擇一個執行就可以了完美,然后重復上方的命令,如果還是不行的話,我沒遇到過,你上隔壁網站搜一下答案。

chmod 777 configure
chmod 755 ./configure

這個過程看情況,pc條件不是太差的一般3分鍾以內吧,3分鍾以上的也別慌,這個時候你所處的地方比較涼爽,或者空調應該已經讓屋內涼爽了,pc扛得住。

完成后你應該會看到這樣的提示畫面。

image

然后接着執行make命令,這一步耗時比較久一點,普通pc一般10分鍾吧,電腦發熱情況比較嚴重,十分考驗室內溫度。

第四步 執行make命令編譯

sudo make LOG=trace all 

靜靜的等待。。。

喝口水。。。。。

再等一會兒。。。

看下微信。。。。

看下釘釘。。。。

10分鍾后你大概會看到這樣的界面

image

界面上沒有success字樣,不要慌,打開你的根目錄,找到build --> macosx-x86_64-server-slowdebug --> jdk --> bin ,確認 bin 文件夾中是否含有 java/javac/javap 等熟悉的文件(是不是有點像 jdk 的安裝目錄和文件)
找到了就沒事,試着執行一下下方的命令,看下你的java version 是否是 openJDK 的版本。

./bin/java -version

不出意外的話,就能看到和我一樣的畫面。

image

到這里,openJDK的編譯已經告一段落了。

第五步 使用xcode編譯

接下來可以開始試着使用xcode編譯了。

我們打開xcode,你喜歡(option+空格也行),我就是option+空格也行打開xcode。

image


打開xcode之后,找到這個create new xcode project,然后依次如圖操作。

image


找到 macOS 的 Command Line Tool ,選中后點擊 next

image


設置項目名稱 ,然后點擊 next

image


找到這個默認的文件夾,右鍵delete,彈出的框中選擇 move to Trash,直接丟進回收站(找個時間去清空一下回收站)

image


然后右鍵,選擇添加文件到當前項目

image


選擇第一步中下載的整個目錄的根目錄文件夾(第二種或者第三種方法解壓出的那個文件夾)

image


如圖設置一下scheme,將Build欄目中默認的openjdk_14刪掉

image


選擇Build下方的Run欄目,如圖操作,選擇other,彈出后接着下圖中的操作

image


選擇編譯好的openjdk目錄中的jdk--> bin --> 目錄下的 java 文件

image

end

到這里,你的項目已經可以跑起來了,開始了一段鑽研Hotspot之旅了,加油,騷年!

我的個人站點

SUMMER https://www.huangyingsheng.com/about


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM