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


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

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

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

注意
- 現(xiàn)在看到的是.java文件,和我們平時寫的Java文件是一樣樣的。就是直接打開那個xxx-sources.jar的結(jié)果。里面注釋啥的都有。
- 這2個圖對比,就可以發(fā)現(xiàn)。一般jar包是有2個類型的。結(jié)尾帶-sources的和不帶的。二者的差別,就如上所描述的。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
詳解SpringMVC組件之HandlerMapping(二)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(二),HandlerMapping組件是Spring?MVC核心組件,用來根據(jù)請求的request查找對應的Handler,在Spring?MVC中,有各式各樣的Web請求,每個請求都需要一個對應的Handler來處理,需要的朋友可以參考下2023-08-08
Spring @Cacheable redis異常不影響正常業(yè)務方案
這篇文章主要介紹了Spring @Cacheable redis異常不影響正常業(yè)務方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02
基于jmeter實現(xiàn)跨線程組傳遞token過程圖解
這篇文章主要介紹了基于jmeter實現(xiàn)跨線程組傳遞token,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
SpringBoot監(jiān)聽Redis key失效事件的實現(xiàn)代碼
這篇文章給大家介紹了SpringBoot實現(xiàn)監(jiān)聽Redis key失效事件的方法,文中通過代碼示例給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-02-02

