Mac JDK9 編譯記 - 莊周夢蝶
準備
- 安裝 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!