在我最近的項目中,我們需要修改一些業務規則,但我們沒有源代碼。使用反編譯的java代碼
我把最新的生產部署的jar文件通過JD-gui打開。通過使用選項保存所有資源,我可以得到de編譯的java文件。現在我的問題是:
我看到反編譯的java代碼在每一行都有不必要的行註釋。有什麼方法可以避免它們?
如果我對某個文件進行了更改,然後重新編譯代碼並將jar發送到生產環境,會不會有任何隱藏的挑戰?
在我最近的項目中,我們需要修改一些業務規則,但我們沒有源代碼。使用反編譯的java代碼
我把最新的生產部署的jar文件通過JD-gui打開。通過使用選項保存所有資源,我可以得到de編譯的java文件。現在我的問題是:
我看到反編譯的java代碼在每一行都有不必要的行註釋。有什麼方法可以避免它們?
如果我對某個文件進行了更改,然後重新編譯代碼並將jar發送到生產環境,會不會有任何隱藏的挑戰?
1.這取決於您使用的工具,大多數情況下您必須自行清理。
2.某些jar文件包含MD5校驗和,您必須刪除或更新校驗和才能使新的jar文件正常工作。
由Java解壓器生成的代碼並不總是按原樣編譯。您最終可能花費大量的時間來修復編譯錯誤。 – assylias
如果只是稍作修改才能使代碼編譯和工作,請考慮一下自己的幸運。 –
不僅反編譯器輸出不總是編譯,但它不一定**正確**,即使它*編譯*。要非常小心地重新部署由反編譯器生成的代碼。在幾種情況下,JD-GUI可能會產生不正確的代碼。其他反編譯器可能會更好,但相信他們仍然在尋求麻煩。如果你必須走這條路線,至少要比較兩個或三個體面的反編譯器的輸出,並確保結果一致。我推薦Procyon,CFR和Krakatau。 –