標籤:http io os java ar 檔案 div art sp
註:還有問題,還沒有成功,哪位能幫忙解答一下 -_-~|||
0、首先,要有耐心,相信會有夠折騰的;如果你會提出“為什麼要自己做編譯JDK這樣無聊的事情”這樣的問題的話,還是別往下看了,浪費時間啊。
我是參照openjdk的這個文檔(README-builds.html)來做的,附件傳不上去我就不傳了,openjdk裡面有。
1、我是再Windows上面編譯的,肯定比Linux下要麻煩一些,首先訪問到 http://download.java.net/openjdk/jdk7/
下載openjdk-7-fcs-src-b147-27_jun_2011.zip
解壓(這個版本不需要JDK Plug)。
2、下載Visual Studio 2010版本,安裝。JDK就是用它來編譯的。
3、安裝Ant,1.7.1版本以上。
4、安裝FreeType(http://www.freetype.org/download.html),是一個字型渲染庫:
http://download.savannah.gnu.org/releases/freetype/。
5、文檔上說要安裝InfoZIP(http://www.info-zip.org/),我沒有下。
6、安裝Cygwin(http://www.cygwin.com/),cygwin是一個在windows平台上啟動並執行unix類比環境,這樣就可以在Windows上面執行sh指令碼了,安裝的時候至少要在可選包裡面把ar、make、m4、cpio、gawk、file、zip、unzip、free、make這幾個包勾上。
7、安裝DirectX 9.0 SDK(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21416)。
8、寫一個指令碼,專門用來配置環境變數的:
Bat代碼
- set ALT_BOOTDIR=D:\junction\JDK\jdk1.6.0
- set ALT_JDK_IMPORT_PATH=%ALT_BOOTDIR%
- set ANT_HOME=D:\Software Development Environment\Build\apache-ant-1.8.2
- set ALT_MSVCRNN_DLL_PATH=C:\WINDOWS\system32
- set ALT_DXSDK_PATH=D:\Software Development Environment\Microsoft DirectX 9.0 SDK (Summer 2004)\
- set ALT_FREETYPE_HEADERS_PATH=D:\Software Development Environment\Font\freetype-2.4.6\include
- set INCLUDE=D:\junction\VS\VC\lib;%INCLUDE%
- set LIB=D:\junction\VS\VC\lib;%LIB%
- set LIBPATH=%LIB%
- set PATH=D:\junction\VS\VC\bin;D:\junction\VS\Common7\IDE;D:\junction\Cygwin\bin;%PATH%
- set BUILD_CORBA=false
- set JAVA_HOME=
說明幾個事情:
(1)JAVA_HOME環境變數需要設為空白,這樣就取消了這個環境變數。
(2)BUILD_CORBA設為false,是因為我的系統是中文版的,Java IDL會因為產生了中文注釋而出錯。
(3)像JDK、Cygwin等路徑最好不要有中文和空格(比如出現了空格後面make的時候會警告),可我已經安裝到帶有空格的路徑下了,怎麼辦?我想了個辦法,下載了一個M$的junction工具:http://technet.microsoft.com/zh-cn/sysinternals/bb896768.aspx,它可以建立一個類似於檔案夾映像,很像Linux下面的符號連結,這樣新建立的映像路徑設為沒有空格的英文路徑即可。
9、到openjdk目錄下,執行:make sainty,這個命令可以檢查錯誤,報錯:
Java代碼
- Compiler-msvc.gmk:117: *** COMPILER_VERSION cannot be empty here. Stop.
網上找到一篇文章,說明了這個情況:http://www.java.net/node/659597
不過我直接編輯這個gmk檔案,直接把COMPILER_VERSION寫入,繞過這個問題。
10、繼續執行make sainty,接著報錯:
Java代碼
- sanity-rules.gmk:64: *** multiple target patterns. Stop.
網上找到的文章這樣說:(http://mail.openjdk.java.net/pipermail/build-dev/2007-July/000116.html)
Java代碼
- > Download a patched cygwin make binary from
- > http://www.cmake.org/files/cygwin/make.exe
我就下了並且替換了,接著繼續報錯,說找不到cygintl-3.dll,無奈,我去下載了cygintl-3.dll,接著報:
Java代碼
- make.exe - 損壞的映像
- ---------------------------
- 應用程式或 DLL D:\junction\Cygwin\bin\cygintl-3.dll 為無效的 Windows 映像。請再檢測一遍您的安裝盤。
自己編譯JDK[轉]