一 概述
JDK全稱Java SE Development kit(JDK),即java標準版開發包,是Oracle提供的一套用於開發java應用程序的開發包,它提供編譯,運行java程序所需要的各種工具和資源,包括java編譯器,java運行時環境,以及常用的java類庫等。
2. JRE Java Runtime Environment(JRE) Java運行環境
Java運行環境,它的全稱Java Runtime Environment(JRE) ,因此也被稱爲JRE,它是運行java的必需條件。
3. JVM Java Virtual Machine
Java虛擬機,JRE包含JVM。JVM是運行java程序的核心虛擬機,還需要其他的類加載器,字節碼校驗器,以及大量的基礎類庫。JRM除了包含JVM之外,還包含運行java程序的其它環境支持。
二 JDK的安裝和配置(以JDK8爲例)
1. Java SE Development kit(JDK) 8下載
2. JDK 安裝
開始安裝
選擇安裝目錄
3. JDK 的配置
1. 操作步驟與操作圖示
(1)新建->變量名"JAVA_HOME",變量值"D:\Java\jdk"(即JDK的安裝路徑)
(2)編輯->變量名"Path",在原變量值的最後面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->變量名“CLASSPATH”,變量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
2. 檢測環境變量配置(cmd輸入java -version查看輸出的ava版本信息與安裝的版本信息相同即可)
三 利用Idea搭建源碼閱讀調試環境
1. 在Idea中新建一個簡單的java項目,然後導入JDK源碼調試(JDK源碼就在下載安裝的JDK的src.zip壓縮包中,我們將其解壓縮然後複製到新建的java項目的代碼目錄中即可),如圖src.zip的目錄地址
2. src.zip解壓後的目錄結構以及內容
src.zip
|— com //com目錄中只包含了sun目錄
|
| |— sun //sun目錄中的內容是sun的hotspot虛擬機中java.* 和javax.*的實現類。因爲包含在
| rt中,所以我們也可以調用。但是因爲不是sun對外公開承諾的接口,所以根據根據實
| 現的需要隨時增減,因此在不同版本hotspot中可能是不同的,而且在其他的jdk實現
| 中是沒有的,調用這些類,可能不會向後兼容,所以一般不推薦使用。
|
|— java //java目錄是javaSE的標準庫,是java標準的一部分,是對外承諾的java開發接口,
| 通常要保持向後兼容,一般不會輕易修改。包括其他廠家的在內,所有jdk的實現,
| 在java.*上都是一樣的。
|
|— javax //java目錄也是java標準的一部分,但是沒有包含在標準庫中,一般屬於標準庫的擴展
| 通常屬於某個特定領域,不是一般性的api。 所以以擴展的方式提供api,以避免jdk
| 的標準庫過大。當然某些早期的javax,後來被併入到標準庫中,所有也應該屬於新版
| 本JDK的標準庫。比如jmx,java 5以前是以擴展方式提供,但是jdk5以後就做爲標準
| 庫的一部分了,所有javax.management也是jdk5的標準庫的一部分。
|
|— launcher //launcher目錄中包含的是JRE中用於啓動程序入口main()方法的類。
|
|— org //org目錄是由企業或者組織提供的java類庫,大部分不是sun公司提供的,同
| com.sun.*,不具備向後兼容性,會根據需要隨時增減。其中比較常用的是w3c
| 提供的對XML、網頁、服務器的類和接口。
|
3. 導入到項目後的結構
4. 解決編譯出現的系統資源不足的問題
問題:
解決辦法:
5. 由於jdk源碼是受保護的,我們debug,F7 step Into是無法步入調試的,其實只要進入設置將Debugger中的Do not step into the classes的勾去掉即可!
6. jdk源碼文件被鎖定是不能修改的,也就是常看到源碼類文件有個小鎖的圖標。
因爲這些源碼文件的來源是jdk安裝目錄下src.zip,該包下的文件是不可更改的,所以我們在設置中將其刪除,然後重新加入自己的源碼包即可
四 總結
至此,JDK源碼閱讀調試環境搭建已經完成,希望對大家的幫助!謝謝查看!