在windows下構建OpenJDK是一件很痛苦的事情,需要不斷的解決各種各樣的問題棚潦,同時官方的文檔也不夠周全令漂,各種坑膝昆,很考驗耐心丸边。。
以Java8構建為例荚孵,首先需要獲取到源碼妹窖。有兩種方式栖茉,一種是從版本服務器上拉取预皇,非常耗時立膛,而且中間不斷發(fā)生網絡錯誤屈芜,可以說不嘗試個10到20次都沒法完全把代碼拉下來务冕;另外一種是直接從官方下載已經打好的源碼包袱耽,代碼不是很新死遭,但是方便一些鞠眉,可以一次性下載完畢澄峰。
下載好源碼之后嫉沽,需要準備編譯環(huán)境,在windows下需要:
1. Cygwin //提供類UNIX環(huán)境
2. VS2010 //強烈建議英文版俏竞,否則在執(zhí)行configure時還需要人工介入去解決不合理的報錯
3. freetype //這個官方文檔沒有提到绸硕,需要自己編譯出對應的dll和lib文件,或者從github上面下載編譯好的
4. 一個已安裝好的JDK魂毁,作為bootstrap使用 //如果編譯Java8玻佩,需要至少Java 7 update 7之后的版本,注意不要使用Java8
以下截圖為官方提供的安裝Cygwin時需要另外勾選的工具:
編譯步驟:
1. 執(zhí)行bash ./configure --with-freetype=/cygdrive/d/build/freetype 這里需要指定freetype路徑
2. make all 這個過程很漫長席楚,需要1小時咬崔,下圖是在我本地的各模塊編譯耗時,編譯完成后會生成一個image目錄烦秩,可以直接拿來用
在vs中進行調試刁赦,可以看到jvm中創(chuàng)建一個JavaThread去調用Java的Main方法。闻镶。
做個簡單的總結:上述過程省略了很多細節(jié)和問題甚脉,因為碰到的問題實在不少∶總而言之牺氨,如果要在windows下完成OpenJDK的構建,需要事先做好被反復折騰的心理準備墩剖。猴凹。