天天看點

搭建JDK源碼閱讀環境,jdk源碼閱讀(一)

搭建JDK8源碼閱讀環境

  1. 建立一個Java項目(最基礎的Java項目就可以),jdk源碼在jdk目錄中的src.zip中,解壓後把解壓的目錄複制到建立的項目中。
  2. 建立一個測試用例,打斷點調試運作一下。
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  3. 會報如下圖中的錯誤
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  4. 解決第一個問題

    Information:java: 系統資源不足。

    Error:java: OutOfMemoryError: insufficient memory

    OOM錯誤,原因記憶體不足。解決辦法加大記憶體。

    點選File–>Settings–>Build,Execution,Deployment–>Compiler,将Build process heap size(Mbytes)選項加大,預設值是700,調至1200:

    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  5. 解決第二個問題
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)

    找不到符号UNIXToolkit,FontConfigManager

    錯誤原因:這是因為在Windows平台下缺少了兩個java類檔案所導緻的。

    這兩個類檔案可在OpenJDK網站上找到。

    https://openjdk.java.net/

    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    然後選擇自己的版本,我的是這個
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    找到兩個檔案後把它們複制到如圖所示的位置。
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  6. 解決第三個問題
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)

    Error:(40, 31) java: 程式包com.sun.tools.javac.api不存在

    Error:(41, 38) java: 程式包com.sun.tools.javac.processing不存在

    Error:(42, 32) java: 程式包com.sun.tools.javac.util不存在

    錯誤原因:缺少tools的jar包所。

    解決辦法:點選File–>Project Structure–>Libraries

    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    選擇自己的JDK安裝目錄,在lib目錄下找到tools.jar,導入就好。
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  7. 如果現在斷點單步調試的話還是無法進入源碼内部,因為JDK源碼的受保護的,無法進入。點選File–>Settings–>Build,Execution,Deployment–>Debugger–>Stepping,取消勾選Do not step into the classes。
    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
  8. 現在源碼檔案是隻讀的無法編輯,因為此時項目關聯的源碼檔案還不是剛才複制進項目的檔案,而是jdk安裝目錄下的源碼檔案,如果我們想要對源碼檔案做記錄或者注釋,重新将項目關聯的源碼檔案設定成該項目下的源碼檔案即可。

    點選File–>Project Structure–>SDKs

    搭建JDK源碼閱讀環境,jdk源碼閱讀(一)
    需要先将原先的jdk安裝目錄下關聯的源碼路徑删除,添加剛才拷貝至項目目錄下的源碼路徑,然後就可以編輯了。