Beyound Compare中比較java字節碼class文件


背景

項目維護的時候版本混亂或者外出在現場項目排錯的時候難免要比對兩個jar/class/war文件的源代碼。

通常情況下這個時候我們用jd-gui直接把文件拖進去比對,這種情況只適合單一文件的比對。

如果一個lib目錄下有很多jar或者class文件要比對,這個時候工作量就比較大了。

      筆者去年這個時候在網絡上研究了一番,找到了一個可以批量反編譯的中間件,后來寫了一遍文章CFR - another java decompiler批量反編譯jar文件

這個可以批量反編譯,具體移步看那篇文章。在以上工作背景下,筆者整理出一個可以批量

比對java字節碼的beyond comapre的插件,如下圖所示

 

使用方法很簡單,只要選中兩個class/jar/war就可以比較了。

使用方法

下載本文中的附件,雙擊配置文件導入即可。

其他

筆者有嘗試把maven倉庫里面的jar附加到java -classpath路徑中,顯示"輸入行太長"錯誤。如果你有辦法打開beyond compare安裝目錄下面

的Helpers\Java目錄編輯CLASS_to_JAVA_cfr.bat或者相關批處理文件,歡迎留言給我。

CLASS_to_JAVA_cfr.bat

@echo off
java -classpath Helpers\Java\cfr\cfr_0_128.jar%jarFiles% org.benf.cfr.reader.Main %1 --caseinsensitivefs true > %2

 

javaDevEnv.bat

@echo off
setlocal ENABLEDELAYEDEXPANSION
set jarFiles=
for /F %%i in (cfr\cp.txt) do ( set jarFiles=!jarFiles!;%%i)
echo %jarFiles%

 

setclasspath.bat

@echo off
color 17
title 正在生成class環境變量文件

dir /s /b /d D:\develop\apache-maven-3.5.3\repo\*.jar > "%cd%\cp.txt"
title 環境變量文件已經生成....

 附件

BCSettings.bcpkg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM