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的源文件后綴,編寫的代碼需要寫在.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文件和我們自己寫的.java文件一樣,是可以打開(kāi)看內(nèi)容的。下面的jar里面的源碼就打不開(kāi)啦。
再看如下的2張圖。繼續(xù)理解一下上面的意思。
注意
- 現(xiàn)在看到的是.class文件,我們知道自己的寫的.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í)寫的Java文件是一樣樣的。就是直接打開(kāi)那個(gè)xxx-sources.jar的結(jié)果。里面注釋啥的都有。
- 這2個(gè)圖對(duì)比,就可以發(fā)現(xiàn)。一般jar包是有2個(gè)類型的。結(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 BeanDefinition的構(gòu)造元信息
Bean Definition是一個(gè)包含Bean元數(shù)據(jù)的對(duì)象,它描述了如何創(chuàng)建Bean實(shí)例、Bean屬性的值以及Bean之間的依賴關(guān)系,本文將帶大家深入分析Spring BeanDefinition的構(gòu)造元信息,需要的朋友可以參考下2024-01-01Mybatis框架之代理模式(Proxy Pattern)的實(shí)現(xiàn)
本文主要介紹了MyBatis框架中使用代理模式ProxyPattern的原理和實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11maven項(xiàng)目錯(cuò)誤:找不到或無(wú)法加載主類?XXX問(wèn)題
這篇文章主要介紹了maven項(xiàng)目錯(cuò)誤:找不到或無(wú)法加載主類?XXX問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Java Base64算法實(shí)際應(yīng)用之郵件發(fā)送實(shí)例分析
這篇文章主要介紹了Java Base64算法實(shí)際應(yīng)用之郵件發(fā)送,結(jié)合實(shí)例形式分析了java字符編碼與郵件發(fā)送相關(guān)操作技巧,需要的朋友可以參考下2019-09-09Java用freemarker導(dǎo)出word實(shí)用示例
本篇文章主要介紹了Java用freemarker導(dǎo)出word實(shí)用示例,使用freemarker的模板來(lái)實(shí)現(xiàn)功能,有需要的可以了解一下。2016-11-11Springboot mybatisplus如何解決分頁(yè)組件IPage失效問(wèn)題
這篇文章主要介紹了Springboot mybatisplus如何解決分頁(yè)組件IPage失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Java Swing窗體關(guān)閉事件的調(diào)用關(guān)系
這篇文章主要為大家詳細(xì)介紹了Java Swing窗體關(guān)閉事件的調(diào)用關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07