自己編譯JDK[轉]

來源:互聯網
上載者:User

標籤: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代碼  
  1. set ALT_BOOTDIR=D:\junction\JDK\jdk1.6.0  
  2. set ALT_JDK_IMPORT_PATH=%ALT_BOOTDIR%  
  3. set ANT_HOME=D:\Software Development Environment\Build\apache-ant-1.8.2  
  4. set ALT_MSVCRNN_DLL_PATH=C:\WINDOWS\system32  
  5. set ALT_DXSDK_PATH=D:\Software Development Environment\Microsoft DirectX 9.0 SDK (Summer 2004)\  
  6. set ALT_FREETYPE_HEADERS_PATH=D:\Software Development Environment\Font\freetype-2.4.6\include  
  7. set INCLUDE=D:\junction\VS\VC\lib;%INCLUDE%  
  8. set LIB=D:\junction\VS\VC\lib;%LIB%  
  9. set LIBPATH=%LIB%  
  10. set PATH=D:\junction\VS\VC\bin;D:\junction\VS\Common7\IDE;D:\junction\Cygwin\bin;%PATH%  
  11. set BUILD_CORBA=false  
  12. 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代碼  
  1. Compiler-msvc.gmk:117: *** COMPILER_VERSION cannot be empty here. Stop.  

網上找到一篇文章,說明了這個情況:http://www.java.net/node/659597

不過我直接編輯這個gmk檔案,直接把COMPILER_VERSION寫入,繞過這個問題。

 

10、繼續執行make sainty,接著報錯:

Java代碼  
  1. sanity-rules.gmk:64: *** multiple target patterns.  Stop.  

網上找到的文章這樣說:(http://mail.openjdk.java.net/pipermail/build-dev/2007-July/000116.html) 

Java代碼  
  1. > Download a patched cygwin make binary from  
  2. > http://www.cmake.org/files/cygwin/make.exe  

我就下了並且替換了,接著繼續報錯,說找不到cygintl-3.dll,無奈,我去下載了cygintl-3.dll,接著報:

Java代碼  
  1. make.exe - 損壞的映像  
  2. ---------------------------  
  3. 應用程式或 DLL D:\junction\Cygwin\bin\cygintl-3.dll 為無效的 Windows 映像。請再檢測一遍您的安裝盤。   

自己編譯JDK[轉]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.