构建openjdk镜像_在Windows上构建OpenJDK
構建openjdk鏡像
通過做一些實驗,我發現手頭提供JDK源代碼來進行一些更改,使用它等等通常很有用。因此,我決定下載并編譯該野獸。 顯然,這花了我一些時間,盡管我最初的想法是,它應該和運行make命令一樣簡單:)。 您可能會猜到,我發現這不是一項微不足道的任務,并且為了簡化以后的生活,保留一些有關我所做工作的記錄將非常有用。以下是我要做的步驟。 我認為計算機已經安裝了Visual Studio 2010。 我覺得Express版本應該可以正常工作,但是我還沒有嘗試過。
| 二進制名稱 | 類別 | 包 | 描述 |
| 可執行文件 | 開發 | Binutils | GNU匯編器,鏈接器和二進制實用程序 |
| 制作工具 | 開發 | 使 | 為CYGWIN構建的'make'實用程序的GNU版本。 |
| 可執行文件 | 口譯員 | m4 | 傳統Unix宏處理器的GNU實現 |
| 腳本文件 | 實用程序 | cpio | 一個管理文件存檔的程序 |
| gawk.exe | 實用程序 | awk | 模式導向的掃描和處理語言 |
| 文件 | 實用程序 | 文件 | 使用“魔術”數字確定文件類型 |
| 壓縮文件 | 封存 | 壓縮 | 打包和壓縮(存檔)文件 |
| 解壓縮程序 | 封存 | 解壓縮 | 提取ZIP檔案中的壓縮文件 |
| 免費版 | 系統 | ps | 顯示系統中的可用和已用內存量 |
不要忘記將cygwin的'bin'文件夾添加到PATH中。
因此,要在命令行中開始運行此命令:
hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u <some_folder>\openjdk7'這應該下載帶有一些幫助腳本的根文件夾。
然后在cygwin中轉到剛剛創建的“ openjdk7”文件夾并運行“ get_source.sh”。 “ get_source.sh”可能失敗或只是掛起(這正是我所發生的事情)。 如果是這樣,則您可以嘗試使用“ –pull”標志(元數據的拉協議)。 我不確定為什么,但這對我有所幫助。 不幸的是,腳本不是以非常友好的方式編寫的,并且無法將任何“ hg”參數傳遞給源檢索腳本。 因此,您需要轉到“ make \ scripts \ hgforest.sh”并將“ –pull”添加到“ hg clone”的每次調用中。
而且即使添加“ -pull”后仍然失敗,嗯……只要放棄并手動運行以下命令:
hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/corba corba hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot hotspot hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/jaxp jaxp hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/jaxws jaxws hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/jdk jdk hg clone --verbose --pull http://hg.openjdk.java.net/jdk7u/jdk7u/langtools langtools希望現在您有資源并且可以有所幫助:)
接下來是我們需要編譯幾個文件。 一種是“ make.exe”的固定版本。 另一個是FreeType庫,只能作為源下載。
如果您對編譯所有這些東西不感興趣,而只想輕松編譯JDK,則建議從此處下載二進制文件(這是我的云端硬盤)。 將“ make.exe”解壓縮到“ openjdk7 / bin”中。 請注意,該軟件包中的“ make.exe”非常老,需要cygintl-3.dll,當前cygwin并未提供。 要修復此問題,只需復制cygintl-8.dll-> cygintl-3.dll。
Freetype的lib和dll必須放在ALT_FREETYPE_LIB_PATH conf變量引用的文件夾中(請參閱步驟13)。 另外,仍然需要一些Freetype標頭,并通過make通過ALT_FREETYPE_HEADERS_PATH變量進行定位(請參見步驟13)。 這意味著您還需要下載源代碼。
如果您不是在尋找簡單的解決方案,而是想自己編譯這些二進制文件,請按照以下說明進行操作:
#定義FT_EXPORT(x)__declspec(dllexport)x
#定義FT_BASE(x)__declspec(dllexport)x
這段代碼: ifeq ($(ARCH_DATA_MODEL),64)MAX_VM_MEMORY = 1024 else ifeq ($(ARCH),universal)MAX_VM_MEMORY = 1024 elseMAX_VM_MEMORY = 512 endif
必須用以下內容替換:
ifeq ($(ARCH_DATA_MODEL),64)MAX_VM_MEMORY = 1024 else ifeq ($(ARCH),universal)MAX_VM_MEMORY = 1024 elseMAX_VM_MEMORY = 1024 endif這將開始構建32位JDK。
參考:來自Stas博客博客的JCG合作伙伴 Stanislav Kobylansky在Windows上構建OpenJDK 。
翻譯自: https://www.javacodegeeks.com/2012/09/stass-blog-building-openjdk-on-windows.html
構建openjdk鏡像
總結
以上是生活随笔為你收集整理的构建openjdk镜像_在Windows上构建OpenJDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将Java应用程序作为Windows服务
- 下一篇: 安卓打印日志到文件(安卓打印日志)