日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JDK源码阅读调试环境搭建

發(fā)布時(shí)間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDK源码阅读调试环境搭建 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 概述

1. JDK??????java開(kāi)發(fā)工具包

JDK全稱(chēng)Java SE Development kit(JDK),即java標(biāo)準(zhǔn)版開(kāi)發(fā)包,是Oracle提供的一套用于開(kāi)發(fā)java應(yīng)用程序的開(kāi)發(fā)包,它提供編譯,運(yùn)行java程序所需要的各種工具和資源,包括java編譯器,java運(yùn)行時(shí)環(huán)境,以及常用的java類(lèi)庫(kù)等。

2. JRE???Java Runtime Environment(JRE)? Java運(yùn)行環(huán)境

Java運(yùn)行環(huán)境,它的全稱(chēng)Java Runtime Environment(JRE) ,因此也被稱(chēng)為JRE,它是運(yùn)行java的必需條件。

3. JVM ?Java Virtual Machine

Java虛擬機(jī),JRE包含JVM。JVM是運(yùn)行java程序的核心虛擬機(jī),還需要其他的類(lèi)加載器,字節(jié)碼校驗(yàn)器,以及大量的基礎(chǔ)類(lèi)庫(kù)。JRM除了包含JVM之外,還包含運(yùn)行java程序的其它環(huán)境支持。

二 JDK的安裝和配置(以JDK8為例)

? ? ? ?1.?Java SE Development kit(JDK) 8下載

2. JDK 安裝

? ? ? ?開(kāi)始安裝

? ? ? ?選擇安裝目錄

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. 檢測(cè)環(huán)境變量配置(cmd輸入java -version查看輸出的ava版本信息與安裝的版本信息相同即可)

三 利用Idea搭建源碼閱讀調(diào)試環(huán)境

? ? ? ?1. 在Idea中新建一個(gè)簡(jiǎn)單的java項(xiàng)目,然后導(dǎo)入JDK源碼調(diào)試(JDK源碼就在下載安裝的JDK的src.zip壓縮包中,我們將其解壓縮然后復(fù)制到新建的java項(xiàng)目的代碼目錄中即可),如圖src.zip的目錄地址

2. src.zip解壓后的目錄結(jié)構(gòu)以及內(nèi)容

src.zip|— com //com目錄中只包含了sun目錄|| |— sun //sun目錄中的內(nèi)容是sun的hotspot虛擬機(jī)中java.* 和javax.*的實(shí)現(xiàn)類(lèi)。因?yàn)榘?| rt中,所以我們也可以調(diào)用。但是因?yàn)椴皇莝un對(duì)外公開(kāi)承諾的接口,所以根據(jù)根據(jù)實(shí) | 現(xiàn)的需要隨時(shí)增減,因此在不同版本hotspot中可能是不同的,而且在其他的jdk實(shí)現(xiàn) | 中是沒(méi)有的,調(diào)用這些類(lèi),可能不會(huì)向后兼容,所以一般不推薦使用。 | |— java //java目錄是javaSE的標(biāo)準(zhǔn)庫(kù),是java標(biāo)準(zhǔn)的一部分,是對(duì)外承諾的java開(kāi)發(fā)接口, | 通常要保持向后兼容,一般不會(huì)輕易修改。包括其他廠家的在內(nèi),所有jdk的實(shí)現(xiàn), | 在java.*上都是一樣的。| |— javax //javax目錄也是java標(biāo)準(zhǔn)的一部分,但是沒(méi)有包含在標(biāo)準(zhǔn)庫(kù)中,一般屬于標(biāo)準(zhǔn)庫(kù)的擴(kuò)展 | 通常屬于某個(gè)特定領(lǐng)域,不是一般性的api。 所以以擴(kuò)展的方式提供api,以避免jdk | 的標(biāo)準(zhǔn)庫(kù)過(guò)大。當(dāng)然某些早期的javax,后來(lái)被并入到標(biāo)準(zhǔn)庫(kù)中,所有也應(yīng)該屬于新版| 本JDK的標(biāo)準(zhǔn)庫(kù)。比如jmx,java 5以前是以擴(kuò)展方式提供,但是jdk5以后就做為標(biāo)準(zhǔn) | 庫(kù)的一部分了,所有javax.management也是jdk5的標(biāo)準(zhǔn)庫(kù)的一部分。| |— launcher //launcher目錄中包含的是JRE中用于啟動(dòng)程序入口main()方法的類(lèi)。 | |— org //org目錄是由企業(yè)或者組織提供的java類(lèi)庫(kù),大部分不是sun公司提供的,同 | com.sun.*,不具備向后兼容性,會(huì)根據(jù)需要隨時(shí)增減。其中比較常用的是w3c| 提供的對(duì)XML、網(wǎng)頁(yè)、服務(wù)器的類(lèi)和接口。 |

3. 導(dǎo)入到項(xiàng)目后的結(jié)構(gòu)

4. 解決編譯出現(xiàn)的系統(tǒng)資源不足的問(wèn)題

? ? 問(wèn)題:

? ?解決辦法:

?5.? 由于jdk源碼是受保護(hù)的,我們debug,F7 step Into是無(wú)法步入調(diào)試的,其實(shí)只要進(jìn)入設(shè)置將Debugger中的Do not step into the classes的勾去掉即可!

6. jdk源碼文件被鎖定是不能修改的,也就是??吹皆创a類(lèi)文件有個(gè)小鎖的圖標(biāo)。

因?yàn)檫@些源碼文件的來(lái)源是jdk安裝目錄下src.zip,該包下的文件是不可更改的,所以我們?cè)谠O(shè)置中將其刪除,然后重新加入自己的源碼包即可

四 總結(jié)

至此,JDK源碼閱讀調(diào)試環(huán)境搭建已經(jīng)完成,希望對(duì)大家的幫助!謝謝查看!

總結(jié)

以上是生活随笔為你收集整理的JDK源码阅读调试环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。