反编译jar包
問題描述:
前提說明:反編譯別人的程序,是不推薦的,畢竟不太好,有可能涉及保密。
有時是沒有辦法而為之,原程序的開發工程師離職了,新的接口人業務不了解,但是也沒有辦法提供源碼,而部署文檔又不明確,這樣在部署的時候就需要看程序結構和配置了,所以需要反編譯一下jar包。
工具如下:
我知道的有以上三個工具,比較推薦的是第三個,IntelliJ自帶的反編譯工具,反編譯效果比較好,但其他的也有自己的優點。
步驟:雙擊打開->File->Open File->選擇要反編譯的jar包->確定;
保存:File->Save All Sourses,得到一個壓縮包,解壓即可;
反編譯后的java類中的導包,也就是import比較明確,不會用*代替多個同文件目錄下的java的導入,一些中文字段也能夠正確的轉換,目錄結構看著也比較好;
但是對于lambda表達式會有以下缺陷,有些java類也不能成功反編譯。
步驟:雙擊打開->File->Open File->選擇要反編譯的jar包->確定;
保存:File->Save All Sourses,得到一個壓縮包,解壓即可;
可以看出,反編譯后的目錄結構的查看效果相對較差一點,import使用了*,一些中文字段變成了ASCII碼,但是它可以較好的反編譯出lambda表達式。
這個需要使用命令行cmd進行操作,
步驟:將java-decompiler.jar放在需要解壓的jar包目錄下->新建一個文件夾(用于存放反編譯后的壓縮包)->該目錄下打開cmd.exe->輸入
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true xxx.jar xxx
保存:運行命令后會在xxx文件夾下面生成一個與原先的jar包同名的文件,加壓縮即可;
說明:
(1)xxx.jar是需要反編譯的jar包的全名
(2)xxx是新建的文件夾的全名
(3)如果 java-decompiler.jar與jar包不在同一目錄下,則需要 java-decompiler.jar指定路徑,比如將上面的java-decompiler.jar改成 “D:\IntelliJ\plugins\java-decompiler\lib\java-decompiler.jar”
反編譯效果比較好,可以綜合一下以上兩個軟件的優點,但也有不足,@Override注解沒有,需要自己添加,其余的需要結合使用情況了。
反編譯后:
java文件和配置文件在\BOOT-INF\classes目錄下;
pom.xml文件在\META-INF\maven\com.xxx\xxx目錄下;
mapper文件的位置有所變動,需要自己調整一下;
反編譯的效果肯定不如源碼,還要結合具體的邏輯進行調整,另外代碼里面如果使用@Data注解,反編譯后會附帶的一些重寫方法,直接刪掉即可,比如:
工具下載:
提取鏈接鏈接:https://pan.baidu.com/s/1koppf3_0EqSLW--q5rbGMQ
提取碼:h5bn
總結
- 上一篇: 安装SQL Sever2017时出现“P
- 下一篇: pe系统怎么加服务器raid驱动,在PE