現(xiàn)在在window也可以很輕松的編譯OpenJDK8了递惋。而且非常簡(jiǎn)單。
|?需要下載
我的電腦上已經(jīng)有jdk8的環(huán)境了溢陪。我看網(wǎng)上說(shuō)要編譯openjdk8需要jdk7的環(huán)境萍虽。不過(guò)我沒(méi)有安裝7也編譯成功了。
a形真、openjdk8:需要編譯的杉编。
b、Cygwin:編譯JDK需要使用Linux上面的一些工具軟件咆霜,Cygwin是一個(gè)在Window上運(yùn)行這些軟件的工具王财。
c、Visual Studio 2010 Professional:不必說(shuō)裕便,編譯JDK的工具。
d见咒、freetype:OpendJDK中swing和JConsole要使用freetype的字體渲染功能偿衰,這里是直接編譯好的。GitHub項(xiàng)目ubawurinna/freetype-windows-binaries.
| 安裝編譯環(huán)境
a改览、解壓openjdk
b下翎、安裝Visual Studio 2010 Professional
一路傻瓜式安裝,沒(méi)有特別配置宝当。
c视事、安裝cygwin:
傻瓜式安裝,可以選擇安裝地址庆揩。不知道為什么這一步我的沒(méi)有俐东,不管網(wǎng)上找了一個(gè)加上去跌穗,添加如圖地址:
然后在下一步有一個(gè)選擇packages,要選擇一些安裝包虏辫。
在下載的openjdk里面有一個(gè)html文件:README-builds.html蚌吸,打開(kāi)能找到要下載的包,根據(jù)package這一列去搜索砌庄,再根據(jù)描述去判斷羹唠,找到后選擇版本,然后在后面一欄勾上就可以了娄昆。
d佩微、freetype
下載下來(lái)后,修改一下文件名稱萌焰,把win64改成lib哺眯。大名稱也改下。如下圖:
| 開(kāi)始編譯
編譯也很簡(jiǎn)單杆怕,就兩步:配置和編譯族购。不過(guò)配置和編譯都是在cygwin里面進(jìn)行的。在配置和編譯過(guò)程中似乎必然會(huì)出現(xiàn)兩個(gè)異常陵珍,可以提前解決寝杖,解決方案看第4步內(nèi)容。
a互纯、配置
打開(kāi)cygwin瑟幕,首先window的所以目錄都是掛載在/cygdirve目錄下的,所以進(jìn)入進(jìn)入jdk根目錄命令是"cd /cygdirve/d/tools/openjdk"留潦。然后執(zhí)行配置命令"./configure --with-freetype=/cygdrive/d/tools/freetype --with-target-bits=64 --enable-debug"只盹。具體如下圖:
配置完成如下圖:
b、編譯
配置完成后直接運(yùn)行命令"make"兔院,出現(xiàn)異常解決后"make clean"后在執(zhí)行"make"殖卑。,"make dist-clean"命令可以清除配置坊萝。這個(gè)過(guò)程用的時(shí)間較長(zhǎng)孵稽,我用了差不多一個(gè)小時(shí)。完成如下圖:
c十偶、驗(yàn)證
進(jìn)入文件夾"D:\tools\openjdk\build\windows-x86_64-normal-server-fastdebug\jdk\bin"菩鲜,執(zhí)行命令"javac -version"、"java -version"驗(yàn)證惦积。
4接校、異常處理
一共兩個(gè)異常,配置期一個(gè)編譯期一個(gè)狮崩。
第一個(gè)配置期異常蛛勉,在執(zhí)行了命令
"bash ./configure --with-freetype=/cygdrive/e/freetype --with-target-bits=64"后一般都會(huì)有版本太老的問(wèn)題鹿寻,如下如圖:
這個(gè)問(wèn)題只是openjdk限制了cygwin的版本,cygwin新版本是完全兼容老版本的董习。所以可以直接注釋調(diào)openjdk里面的限制烈和。打開(kāi)文件:D:\tools\openjdk\common\autoconf\generated-configure.sh。如下圖:
在文件中搜索“Your cygwin is too old”找到位置皿淋。然后注釋其中7217到7255行招刹,如下圖:
第二個(gè)編譯期異常如下圖:
這是由于cvtres.exe版本錯(cuò)誤導(dǎo)致的結(jié)果。因?yàn)槲覀儼惭b的Visual Studio 2010 Professional下面也有兩個(gè)窝趣,我們C盤下也有疯暑。所以把VS下這兩個(gè)修改名稱就行。修改的兩個(gè)文件:
D:\tools\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe
D:\tools\Microsoft Visual Studio 10.0\VC\bin\amd64\cvtres.exe
把他們的名稱改成cvtres.exe.bak就可以了哑舒。
在C:\Windows\Microsoft.NET\Framework\v4.0.30319下面的cvtres.exe就可以被使用了妇拯。
Java程序員日常學(xué)習(xí)筆記,如理解有誤歡迎各位交流討論洗鸵!