Mac JDK9 編譯記 - 莊周夢蝶

AdrianCummi 8年前發布 | 11K 次閱讀 Java9 Java開發

準備

  • 安裝 Mercurial: brew install mercurial,熟悉下 hg 基本命令
  • 獲取源碼:
hg clone http://hg.openjdk.java.net/jdk9/jdk9 jdk9
cd jdk9
bash ./get_source.sh

 

下載源碼這個過程很漫長,壓縮后都有 500 多M,建議找臺國外的 VPS 獲取源碼壓縮后再拷貝到本機。源碼里的 README 和 README-builds.html 仔細閱讀下,描述了 openjdk 整個編譯過程和項目結構。

  • 依賴軟件安裝:
GNU make >= 3.81
JDK 8
XCode 7.3

官方推薦是 Xcode 6.3,否則會有一些不兼容問題,不過因為 JDK9 分支本來就是在開發中,我后面簡單在編譯階段先簡單地將所有編譯告警信息忽略。

后面編譯的時候,發現還需要依賴 freetype,可以單獨安裝,也可以簡單地安裝 X11 支持。由于水果從 10.5 開始移除了 X11 的支持,為了繼續運行 X11 程序,Apple搞了一個開源項目 XQuartz 來繼續提供 X11 的支持。從官方網站 https://www.xquartz.org/ 下載 dmg,安裝即可。

為了加快后續可能重復編譯速度,支持下 --enable-ccache,安裝下 ccache:

brew install ccache

編譯

編譯就是 configure 和 make 兩步,寫個 build.sh:

#!/bin/bash
bash ./configure --with-freetype-include=/usr/X11/include/freetype2 --with-freetype-lib=/usr/X11/lib
  \ --enable-ccache --disable-warnings-as-errors
make clean
make all

XCode 7.3 會遇到比較多的兼容問題,很多告警會被當成錯誤退出,因此先禁止掉 -Werror 選項, configure 的時候加上 --disable-warnings-as-errors

整個編譯過程在我的機器上挺快的,刷幾個新聞就結束了。前面折騰這些編譯告警的時候比較煩,索性先全部禁止了。

運行

進入

build/macosx-x86_64-normal-server-release/images/jdk 就可以看到一個標準的 JDK 結構:

$bin/java -version
openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-05-08-160141.dennis.jdk9)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-05-08-160141.dennis.jdk9, mixed mode)

 

來自:http://blog.fnil.net/blog/6df269d130f489e386b9e23174d45f10/

 本文由用戶 AdrianCummi 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!