關注微信公眾號:CodingTechWork,一起學習進步。
引言
在產品上線后,如果遇到問題阻塞,我們第一步要做的就是去查看日志,但是代碼不是一個人寫的,說不定就會遇到沒有日志的,遇到這種情況,只能去看日志的報錯行數是哪里,否則,無從下手。
查看日志報錯行數時,發現現有代碼又和線上的代碼不一致,又阻塞了,怎么辦?這個時候我們就需要反編譯,反編譯有很多工具可以使用,比如JD-GUI
。本文接下來就介紹一下如何通過我們神奇的Idea
軟件進行反編譯jar包。
實踐
idea反編譯插件
首先,我們要保證IDEA中有反編譯插件。通過【Settings】——>【Plugins】輸入Decompiler
進行查看,看是否有Java Bytecode Decompiler
這個插件。
命令行進行反編譯
查找插件路徑
找到IDEA安裝路徑后,我們就可以找到插件的安裝路徑:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-decompiler.jar
反編譯
在jar包同目錄下創建一個目錄,如decompiler_test
文件夾。
然后,使用git-bash
命令行執行以下命令:
java -cp "C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true demo-0.0.1-SNAPSHOT.jar decompiler_test
注意
如果不先創建目錄,就執行的話,可能會報錯。
$ java -cp "C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.2\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true d emo-0.0.1-SNAPSHOT.jar decompiler_test
error: destination 'decompiler_test' is not a directory
查看反編譯文件
因為以上命令執行后,反編譯出來的也jar包。需要我們進行解壓(通過解壓工具):
解壓后的jar包里面顯示的即為java文件:
總結
至此,就可有通過IDEA中的插件對jar包進行反編譯。整個流程主要依賴於IDEA中的Java Bytecode Decompiler
插件。