簡體   English   中英

jd-gui反編譯器無法反編譯的Java類文件如何反編譯?

[英]How to decompile Java class files which jd-gui decompiler is unable to decompile?

我們不小心從系統中刪除了一些 JAVA 源文件。

當我們直接從存儲庫中檢出一個文件夾作為 Eclipse 項目,然后嘗試將另一個 Eclipse 項目中的文件夾復制到這個文件夾時,就會發生這種情況。奇怪的是,所有這些文件夾文件都從本地系統中消失了(顯然它們從未進入 SVN 存儲庫) )。

不知何故,我們已經獲得了一些 CLASS 文件的 .svn-base 文件。現在我們正在嘗試反編譯類文件以獲取源代碼。 然而,當 jd 編譯器試圖處理它們時,一些類文件會給出錯誤“無效的輸入文件”。 有沒有其他解決方案?

據我所知,“jd-gui”是封閉源代碼,因此您可能需要聯系開發人員以了解該消息的含義。 (如果它是開源的,我們可以查看源代碼來找出可能的問題所在!)

但是,從 Google 提出的各種問題中可以清楚地看出一件事,那就是“jd-gui”不了解如何反編譯檔案(JAR、EAR 等)。 因此,也許您只需要取消 JAR 文件即可使其工作。

您可以嘗試的另一件事(首先)是查看“javap”對“jd-gui”不喜歡的類文件的構成。

嘗試使用 JAD 來反編譯您的文件。

www.varaneckas.com/jad/

你可能需要解壓你的 jar 文件,然后運行類似下面的東西來反編譯它們

find <srcdirectory> -name *.class -exec jad -s .java -r -ff -clear -debug -d <dest directory> {} \;

我還沒有測試上述命令,但希望它幾乎就在那里......

我也有某個類文件的錯誤“無效的輸入文件”。 我使用的是 jd-gui 的 0.3.6 版。 下載最新版本的 jd-gui(在撰寫本文時為 1.6.6)后,我可以反編譯之前失敗的類文件。

所以如果有人仍然有這個問題,檢查版本並升級是否是舊版本是有意義的。 這是“最新版本”下載頁面的鏈接: http : //java-decompiler.github.io/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM