日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

在Windows上构建OpenJDK

發布時間:2023/12/3 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Windows上构建OpenJDK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過做一些實驗,我發現手頭提供JDK源代碼來進行一些更改,使用它等等通常很有用。因此,我決定下載并編譯該野獸。 顯然,這花了我一些時間,盡管我最初的想法是,它應該和運行make命令一樣簡單:)。 您可能會猜到,我發現這不是一項微不足道的任務,并且為了簡化以后的生活,保留一些有關我正在做的事情的記錄將非常有用。

以下是我要做的步驟。 我認為計算機已經安裝了Visual Studio 2010。 我覺得Express版本應該可以正常工作,但是我還沒有嘗試過。

  • 安裝cygwin。 確保已安裝此處列出的所有軟件包,其中一些默認情況下未安裝。 以防萬一,這是該表的副本,但建議與主源進行驗證:
    二進制名稱 類別 描述
    可執行文件 開發 Binutils GNU匯編器,鏈接器和二進制實用程序
    制作工具 開發 使 為CYGWIN構建的'make'實用程序的GNU版本。
    可執行文件 口譯員 m4 傳統Unix宏處理器的GNU實現
    cpio.exe 實用程序 cpio 一個管理文件存檔的程序
    gawk.exe 實用程序 awk 模式導向的掃描和處理語言
    文件 實用程序 文件 使用“魔術”數字確定文件類型
    壓縮文件 封存 壓縮 打包和壓縮(存檔)文件
    解壓縮文件 封存 解壓縮 提取ZIP檔案中的壓縮文件
    免費版 系統 ps 顯示系統中的可用和已用內存量

    不要忘記將cygwin的'bin'文件夾添加到PATH中。

  • 從此處安裝Mercurial并將“ hg”添加到PATH。
  • 安裝用于Windows 7和.NET Framework 4的Microsoft Windows SDK 。
  • 安裝DirectX SDK 。 JDK需要v9.0,但我很難找到它。 所以我決定不打擾并安裝最新的。 似乎工作正常。
  • Bootstrap JDK是構建所必需的。 碰巧我使用了JDK6,但是假設任何> JDK6的版本都不會出現問題。
  • 下載并安裝Ant 。 我使用的是1.8.2版本。 將Ant添加到PATH。
  • 結帳來源。 由于多種原因,它是最復雜的部分。 “ hg”不是特別穩定,因此某些應該由我的腳本完成的操作是手動完成的。

    因此,要在命令行中開始運行此命令:

    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

    希望現在您有資源并且可以有所幫助:)

  • Build需要一些外部二進制文件和一個可在Windows下運行的'make.exe'版本。 cygwin隨附的'make'并沒有真正起作用,因為路徑名中的驅動器字母存在一些問題。

    接下來是我們需要編譯幾個文件。 一種是“ 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)。 這意味著您還需要下載源代碼。

    如果您不是在尋找簡單的解決方案,而是想自己編譯這些二進制文件,請按照以下說明進行操作:

  • 從這里下載make 3.82并解壓縮。 找到“ config.h.W32”并取消注釋行,定義為“ HAVE_CYGWIN_SHELL”。 在Visual Studio中打開make_msvc_net2003.sln解決方案,選擇“發布”配置并進行構建。 在“發布”文件夾中,您將獲得“ make_msvc.net2003.exe”,并將其重命名為“ make.exe”。
  • 現在編譯FreeType:
  • 從此處下載FreeType v.2.4.7的源。
  • 將其解壓縮到某個位置,然后在Visual Studio中打開“ \ builds \ win32 \ vc2010 \ freetype.sln”。
  • 轉到項目屬性(在項目樹中的項目上單擊鼠標右鍵),然后在“配置屬性/常規/配置類型”中選擇“動態庫(.ddl)”,然后將輸出重命名為“ freetype”。
  • 更新ftoption.h,添加以下兩行:
    #定義FT_EXPORT(x)__declspec(dllexport)x
    #定義FT_BASE(x)__declspec(dllexport)x
  • 進行構建,您將在objs \ win32 \ vc2010中獲得dll和lib。
  • 不要忘記為“ ALT_FREETYPE_LIB_PATH”和“ ALT_FREETYPE_HEADERS_PATH”變量分配適當的值(請參閱步驟13)。
  • 我在javadoc生成方面遇到了一些問題,但由于OutOfMemory失敗。 為了修復它,我不得不更改“ openjdk7 \ jdk \ make \ docs \ Makefile”。
    這段代碼: 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
  • 復制“ msvcr100.dll”到以下目錄: cp /cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 10.0/Common7/Packages/Debugger/X64/msvcr100.dll ./drops/
  • 確保Windows之前的cygwin的“ find.exe”在PATH中。 最簡單的方法是將其復制到“ openjdk7 / bin”,然后在當前PATH的開頭進行設置。
  • 創建一個類似于以下文件的批處理文件。 不要忘記適當地更新路徑: ALT_BOOTDIR=C:/Stuff/java_libs/jdk1.6.0_25 ANT_HOME=C:/Stuff/java_libs/apache-ant-1.8.2 JAVA_HOME= CLASSPATH= PATH=C:/Stuff/openjdk7/bin;%PATH% ALLOW_DOWNLOADS=true ALT_MSVCRNN_DLL_PATH=C:/Stuff/java_libs/openjdk7/dropsC:\WINDOWS\system32\cmd.exe /E:ON /V:ON /K 'C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd' /Release /xp /x86
  • 運行批處理文件。 現在,您已經完全配置了環境,可以開始構建了。 運行“ bash”,然后在shell中執行“ make”: make ARCH_DATA_MODEL=32 ALT_OUTPUTDIR=C:/Users/Stas/Stuff/java_libs/openjdk7/output_32 ALT_FREETYPE_LIB_PATH=C:/Users/Stas/Stuff/java_libs/openjdk7/freetype-2.4.7/objs/win32/vc2010 ALT_FREETYPE_HEADERS_PATH=C:/Users/Stas/Stuff/java_libs/openjdk7/freetype-2.4.7/include ALT_BOOTDIR=C:/Users/Stas/Stuff/java_libs/jdk1.6.0_25 ALT_DROPS_DIR=c:/OpenJDK/ALT_DROPS_DIR ALT_DROPS_DIR=C:/Users/Stas/Stuff/java_libs/openjdk7/drops HOTSPOT_BUILD_JOBS=4 PARALLEL_COMPILE_JOBS=4 2>&1 | tee C:/Stuff/java_libs/openjdk7/output_32.log

    這將開始構建32位JDK。

  • 喝咖啡,茶或您想要的任何東西,然后大約一個小時后,您應該會看到類似以下的內容: #-- Build times ---------- Target all_product_build Start 2012-09-01 23:08:55 End 2012-09-01 23:55:48 00:02:35 corba 00:06:46 hotspot 00:00:30 jaxp 00:00:51 jaxws 00:35:30 jdk 00:00:37 langtools 00:46:53 TOTAL -------------------------
  • 參考:來自Stas博客博客的JCG合作伙伴 Stanislav Kobylansky在Windows上構建OpenJDK 。


    翻譯自: https://www.javacodegeeks.com/2012/09/stass-blog-building-openjdk-on-windows.html

    總結

    以上是生活随笔為你收集整理的在Windows上构建OpenJDK的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。