四種方式查看Java字節碼(IDE使用IDEA)
在深入分析Java代碼時往往需要分析Java字節碼,從Java字節碼帶給我們更多的設計細節,瞭解底層原理。以下四種方式能夠快速的讓我們食用Java字節碼。
使用javap -v class名稱
直接在命令行使用
無需下載任何其他插件,直接可以使用。
如圖,查看了一個Spring Boot的入口類GreenaApplication.class的字節碼
在IDEA的命令行使用
很多時候能在IDEA中解決的,切換一個頁面多麻煩,尤其是CMD有些不大友好的體驗,直接使用IDEA的Terminal.
效果如下
使用IDEA的External Tools快捷食用
都已經在IDEA中了。每次要找到對應文件,然後在訪問Terminal效率還是太低。直接配置一個External Tools,方便快捷。
配置External Tool 路徑:File->Setting->Tools->External Tools 點擊綠色+添加
配置External Tools,這塊一定要注意
- 1.一定要 $FileName$,不要使用FileClass,FileClass會帶有包名,執行javap -v命令後,會找不到對應的文件
- 2.最好指定Working directory爲當前路徑即$FileDir$,防止掃描不必要的class導致class文件確認的錯誤。
一般配置了JAVA_HOME以及PATH的在Program中直接 寫入javap 就可以了。如果沒有配置,請直接選中…選擇javap.exe。
-v寫在Program 或者Arguments 區別不大。
配置好以後效果如下
點擊查看字節碼,機會看到我們在IDEA的Terminal執行的效果了。
IDEA自帶插件Show Bytecode
代碼執行以後,在View->找到Show Bytecode即可看到字節碼。IDEA插件生成的字節碼更具有可讀性,推薦使用。
效果如下
使用JBE - Java Bytecode Editor
JBE不僅僅可以查看字節碼,還可以修改字節碼。
下載地址
效果如下1
使用jclasslib
jclasslib查看字節碼。jclasslib還有很多其他功能,比如修改字節碼。平時使用IDEA時,更多的是使用IDEA插件。也可以使用jclasslib客戶端
IDEA安裝jclasslib路徑如圖。
安裝成功後,執行某代碼後。選擇 View->Show Bytecode With jclasslib。則會出現如下圖效果。不得不說就查看字節碼這塊,jclasslib插件還是更好 ,更值得推薦使用。
圖片來自http://set.ee/jbe/ ↩︎