本身動手編譯jdk15

近期正在研究jdk15,爲了對jdk15有更深一層的瞭解,進行了一次對jdk15源碼的編譯,在此進行一次記錄,如下是詳細過程:html

1.準備工具(windows環境):java

    boot jdk : 編譯好的jdk14(衆所周知,要想編譯jdk須要先有編譯好的上個版本jdk,由於jdk源碼有不少java代碼,因此須要Boot jdk編譯java部分代碼)windows

    Visual Studio(有興趣能夠用vs修改jdk源碼)bash

    cygwin64 (官方推薦模擬unix環境)工具

    jdk15源碼ui

2.安裝cygwin64依賴:spa

  • autoconf
  • zip
  • unzip
  • make
  • tar

3.生成jdk源碼配置文件debug

經過打開cygwin64 跳到jdk15源碼目錄下執行configureunix

bash ./configure --enable-debug --disable-warnings-as-errors --with-ucrt-dll-dir="/cygdrive/c/Program Files (x86)/Windows Kits/10/Redist/10.0.18362.0/ucrt/DLLs/x64" --with-boot-jdk=/cygdrive/d/Environment/Java/openjdk-14

說明:code

  • –enable-debug 等價於 --with-debug-level=fastdebug,此外還有 release、slowdebug 兩個參數,他們是編譯級別,默認是 release(發佈版)
  • –with-ucrt-dll-dir 是指定 DLL 目錄,具體爲:"/cygdrive/c/Program Files (x86)/Windows Kits/10/Redist/版本號/ucrt/DLLs/x64",這裏是一個映射,/cygdrive/c/Program Files (x86) 就是 Windows 的 C:\Program Files (x86)目錄(cygwin64的映射),具體的目錄是咱們安裝好 Visual studio以後產生的目錄,版本號可能會有不一樣,你們自行修改爲本身的
  • –with-boot-jdk 指定boot jdk 的安裝目錄,改爲本身的目錄便可
  • 更多Aruguments可見JDK源碼中的文件:dir/doc/building.html

4.編譯

輸入make all進行編譯

make all

 

遇到問題:

編譯過程當中可能會碰到不少奇葩問題,在此記錄下筆者遇見的問題

1. Your path contains Windows tools (C:\Windows\system32) before your unix (cyg....

   檢查環境致使的 打開make\autoconf\toolchain.ms 搜索 Target CPU mismatch  註釋掉相應if

2.Could not start process!  Failed with error 5: 拒絕訪問。

    管理員權限運行cygwin64

相關文章
相關標籤/搜索