背景
每個版本的 jdk 的安裝包中都有一個 src.zip
可以導(dǎo)入到 IDE 中關(guān)聯(lián)源代碼晒屎,開發(fā)的時候也便于查看源代碼曾沈,但是 src.zip
中的源代碼并不是rt.jar
的全部內(nèi)容粥庄,嘗試通過其他途徑獲取不在此包的源碼取董。
現(xiàn)有源碼
通過 IDE可以方便的額看到管呵,rt.jar
中的結(jié)構(gòu)如下:
然而 src.zip
中結(jié)構(gòu)大概為:
.
├── com
├── java
├── javax
├── launcher
└── org
對比可以看到涧衙,apple
,jdk
,sun
這幾個包的的源碼都不在其中,但是日常工作中有一些代碼又需要查看,或許應(yīng)該想起了 openjdk
, 這幾個包中的代碼在openjdk
基本都可以找到,我們把openjdk
代碼下載下來,然后關(guān)聯(lián)到IDE, 豈不是爽歪歪,不用為看不到源碼而傷心啦.
獲取 openjdk
獲取openjdk
的方法很多,比如可以直接下載源碼包,也可以通過一些版本管理工具獲得.本文以jdk8
舉例.
- 獲取官方源碼 通過
hg
獲取源碼 - 通過
github
獲取,為了方便用戶,github
上面有一些同步了官方庫到github
倉庫的,比如 https://github.com/unofficial-openjdk/openjdk,獲取到本地后切換到對應(yīng)的分支(項目接近2G, 下載時間較長)
git checkout jdk8u/jdk8u
IDE 和源碼關(guān)聯(lián)
以 idea 為例:
加入目錄jdk/src/share/classes
確認(rèn)后,再去看源碼,都能顯示出來啦!