序言:上一節說了閱讀原始碼的順序,有了一個大體的方向,我們們就知道該如何下手。接下來,就要搭建一個方便閱讀原始碼及debug的環境。有助於跟蹤原始碼的呼叫情況。
目前新開發的專案, 大多數都是基於JDK1.8開發,所以我選擇該版本進行原始碼分析。
JDK1.8版本號:jdk1.8.0_151
一. JDK1.8的src在哪裡?
找到JDK安裝包所在目錄,會看到src.zip的壓縮包,這裡面就是JDK的原始碼,如下圖。
二. idea搭建步驟
01. 新建一個簡單的Java工程
開啟idea,選單欄File => Project,出現如下圖
在點Next, 選個初始化一個Hello word應用,出現如下圖:
再點Next, 輸入專案名, 及儲存路徑:
最後出現的介面如下:
02. 把原始碼src.zip解壓到該工程下的src目錄下
你以為這樣就萬事大吉了嗎?NO, NO, NO
我匯入後,執行Main.java檔案裡面,看能不能正常執行起來,結果在編譯的時候,出現了各種ERROR, 找不到xxx類等問題。
看著這麼多錯誤,我有打算放棄的念頭。但是,針對技術,我是一個很倔強的人。
索性思考了一番,這不就是我沒遇到過的問題嗎?如果解決了,那不是又增長了知識。
開始了我的瘋狂自虐操作。
比如 找不到xxx類,可以去網上找相關的類,新增進去就好。只要不是與專案JDK有衝突問題,就都還好。
索性最後問題都被我逐一解決了,最終執行成功。
三. 搭建過程中問題總結
各種ERROR解決思路,為以後的朋友們鋪平道路
我是一個修路工人。
問題1:缺少com.sun.tools包
解決思路:File => Project structure => Libraries 把jdk路徑下的lib包新增到工程中,如下圖:
問題2:缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager這兩個類
解決思路: 在src的目錄下手動新增這兩個類
問題3:debug的時候,出現如下,呼叫的src.zip中的檔案
解決思路: 排除掉src.zip檔案,按下圖操作即可。
問題4:debug的時候,誤點Alternative source availble for the class xxxx 的disable
解決思路: 開啟setting => Debugger, 如下圖 選中該選項。
醜媳婦總要見公婆的。原始碼程式碼已經提交到github上, 歡迎大家fork和關注。
github: https://github.com/raysonfang/jdk1.8-source-analysis
剛起步,歡迎吐槽。爭取打造成JDK原始碼分析系列資源合集,想學習JDK原始碼的, 就可以自行下載。