IntelliJ IDEA引入第三方j(luò)ar包或查看Java源碼的時(shí)候報(bào)decompiled.class file bytecode version:52.0(java 8)錯(cuò)誤的解決辦法
引入第三方j(luò)ar包或者查看Java源碼的時(shí)候,經(jīng)常遇到問(wèn)題如下:
decompiled.class file bytecode version:52.0(java 8) ,open source file.
翻譯一下上面的意思:(反編譯 .class文件中的字節(jié)碼 到Java 8 版本) 打開(kāi)源文件
其實(shí)這個(gè)時(shí)候,你就得注意一下,你看到文件是 .class文件,還是 .java文件。
然后我就詳細(xì)的總結(jié)了一下,二者的差別:
1.先是理論知識(shí):
- .java為Java的源文件后綴,編寫(xiě)的代碼需要寫(xiě)在.java文件中。
- 而.class是字節(jié)碼文件,是.java源文件通過(guò)javac命令編譯后生成的文件。
- Java虛擬機(jī)就是去運(yùn)行.class文件從而實(shí)現(xiàn)程序的運(yùn)行。
- jdk自帶 .class 文件,在運(yùn)行的時(shí)候,沒(méi)必要每次都去把 .java 文件再編譯一遍成 .class文件,去運(yùn)行。
- 也是為了加快代碼執(zhí)行速度。
2.具體的 .class文件和 .java文件的具體對(duì)比圖,如下:


這個(gè).java文件和我們自己寫(xiě)的.java文件一樣,是可以打開(kāi)看內(nèi)容的。下面的jar里面的源碼就打不開(kāi)啦。

再看如下的2張圖。繼續(xù)理解一下上面的意思。

注意
- 現(xiàn)在看到的是.class文件,我們知道自己的寫(xiě)的.java文件會(huì)經(jīng)過(guò)編譯器編譯然后變成.class文件,然后才可以運(yùn)行的。
- 這可以看到.class文件內(nèi)部的代碼,估計(jì)都是編譯器的功勞。但是可惜的是,丁點(diǎn)兒注釋都沒(méi)有。
- 我記得eclipse里面這個(gè)時(shí)候,好像就是直接彈框讓你打開(kāi)源文件來(lái)著。

注意
- 現(xiàn)在看到的是.java文件,和我們平時(shí)寫(xiě)的Java文件是一樣樣的。就是直接打開(kāi)那個(gè)xxx-sources.jar的結(jié)果。里面注釋啥的都有。
- 這2個(gè)圖對(duì)比,就可以發(fā)現(xiàn)。一般jar包是有2個(gè)類(lèi)型的。結(jié)尾帶-sources的和不帶的。二者的差別,就如上所描述的。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
分析Spring框架之設(shè)計(jì)與實(shí)現(xiàn)資源加載器
Spring框架是由于軟件開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。然而,Spring的用途不僅僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合性角度而言,絕大部分Java應(yīng)用都可以從Spring中受益。今天來(lái)分析它的設(shè)計(jì)與實(shí)現(xiàn)資源加載器,從Spring.xml解析和注冊(cè)Bean對(duì)象2021-06-06
java時(shí)間戳轉(zhuǎn)換為日期格式的多種方式
本文介紹了五種將Java時(shí)間戳轉(zhuǎn)換為日期格式的方法,包括使用Date類(lèi)、LocalDateTime類(lèi)、Instant類(lèi)、DateUtils類(lèi)以及自定義時(shí)區(qū),每種方法都有其適用場(chǎng)景,可以根據(jù)具體需求選擇合適的方法,感興趣的朋友跟隨小編一起看看吧2025-01-01
詳解SpringMVC組件之HandlerMapping(二)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(二),HandlerMapping組件是Spring?MVC核心組件,用來(lái)根據(jù)請(qǐng)求的request查找對(duì)應(yīng)的Handler,在Spring?MVC中,有各式各樣的Web請(qǐng)求,每個(gè)請(qǐng)求都需要一個(gè)對(duì)應(yīng)的Handler來(lái)處理,需要的朋友可以參考下2023-08-08
Java版仿QQ驗(yàn)證碼風(fēng)格圖片驗(yàn)證碼
這篇文章主要為大家分享了java圖片驗(yàn)證碼實(shí)例代碼,感興趣的小伙伴們可以參考一下2016-04-04
RxJava2 Scheduler使用實(shí)例深入解析
這篇文章主要為大家介紹了RxJava2 Scheduler使用實(shí)例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案
這篇文章主要介紹了Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
基于jmeter實(shí)現(xiàn)跨線(xiàn)程組傳遞token過(guò)程圖解
這篇文章主要介紹了基于jmeter實(shí)現(xiàn)跨線(xiàn)程組傳遞token,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
java前后端加密解密crypto-js的實(shí)現(xiàn)
這篇文章主要介紹了java前后端加密解密crypto-js的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
SpringBoot監(jiān)聽(tīng)Redis key失效事件的實(shí)現(xiàn)代碼
這篇文章給大家介紹了SpringBoot實(shí)現(xiàn)監(jiān)聽(tīng)Redis key失效事件的方法,文中通過(guò)代碼示例給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02
mybatis?plus實(shí)現(xiàn)分頁(yè)邏輯刪除
這篇文章主要為大家介紹了mybatis?plus實(shí)現(xiàn)分頁(yè)邏輯刪除的方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

