1. 程式人生 > >深入理解java虛擬機器之一window下編譯OpenJDK環境搭建

深入理解java虛擬機器之一window下編譯OpenJDK環境搭建

最近在看java JVM的編譯原理,才來研究這些。在window下搭建編譯OpenJDK的環境,真的很蛋疼,不信的人可以試試。
環境構建需要的工具
1.cygwin 工具。這個工具的主要用處是為了在window平臺上模擬出一個unix虛擬環境。
為了能夠在window下編譯openJDK,我們需要手動安裝的工具如下:
Devel:binutils,make.
Interpreters:m4
Utils:cpio,awk,file(我在安裝的過程中,沒找到awk包和file包,可能是版本的問題。)
Archive:zip,unzip
System:procps
以上提供的鍵值對說明:(前面是檔名:包名)
2.安裝編譯器,我選用的編譯器是VS2010,因為這個編譯器中包好了windows SDK v7.0a,否則還要自己去下載這個SDK
(cygwin和vs2010安裝後都會在作業系統的path環境變數中加入自己的bin目錄路徑,必須保證VS2010的bin目錄在 cygwin的bin目錄之前,因為這兩個軟體的bin目錄中各自都有一個聯結器“link.exe”,但是隻有VS2010中的聯結器可以完成 openJDK的編譯)
3.下載一個已經編譯好的JDK。
4.最後一步就是下載一個Apache ANT,JDK中的java程式碼部分都是使用ANT指令碼進行編譯的,ANT版本要求在1.6.5以上。
5.準備依賴項。
由於OpenJDK中的原始碼沒有100%開源,但是在編譯JDK的時候,我們又需要這部分閉源包,官方稱為“JDK plug”。這部分閉源包可以從Source Releases頁面下載。在windows平臺下,其是以jar包的形式存在的。通過下面的命令就可以安裝
java -jar jdk-7-ea-plug-b121-windows-i586-09_dec_1010.jar
執行後就會出現提示框,點選accept接受協議,然後安裝到指定目錄即可。
安裝完成後建立一個環境變數“ALT_BINARY_PLUGS-PATH”,變數值為安裝的JDK plug的安裝路徑,後面編譯的時候需要它
6.安裝一個大於2.3版本的FreeType,這是一個免費的字型渲染庫。JDK的Swing部分和JConsole這類工具要使用到它。安裝好後建立兩個環境變數“ALT_FREETYPE_LIB_PATH”和“ALT_FREETYPE_HEADERS_PATH”,分別指向FreeType安裝目錄下的bin目錄和include目錄。另外還有一點官方文件沒有提到但必須要做的事情是把FreeType的bin目錄加入到PATH環境變數中。
7.下載Microsoft DirectX 9.0 SDK(Summer 2004),安裝後大約有298MB,在微軟官方網站上搜索一下就可以找到下載地址,它是免費的。安裝後建立環境變數“ALT_DXSDK_PATH”指向DirectX 9.0 SDK的安裝目錄
8.去尋找一個名為“MSVCR100.DLL”的動態連結庫,如果讀者在前面安裝了全套的Visual Studio 2010,那這個檔案在本機就能找到,否則上網搜尋一下也能找到單獨的下載地址,大概有744KB。建立環境變數“ALT_MSVCRNN_DLL_PATH”指向這個檔案所在的目錄。如果讀者選擇的是VS2003,這個檔名應當為“MSVCR73.DLL”,應該在很多軟體中都包含有這個檔案,如果找不到的話,前面下載的“Bootstrap JDK”的bin目錄中應該也有一個,直接拿來用吧。
以上這些,基本的工具就準備完成了,看到這裡是不是想吐血了呢!就一臺筆記本,為了方便就在window下編譯了。有條件的可以直接在Linux筆記本上編譯OpenJDK,這樣會省去好多麻煩。
光準備這些工具,就花了我一天時間,具體的編譯工作,後續再分享。