我有一个jar文件,我需要编辑一个特定的类并将其保存回jar文件中。 我尝试了不同的反编译器,但我无法保存回罐子。
我尝试使用Eclipse和JADCLIPSE进行反编译。 通过使用它,我可以看到反编译的类文件,但我无法编辑它。 有谁可以帮我解决这个问题?
答案 0 :(得分:8)
我使用JD-GUI反编译.jar,它有一个导出所有反编译类的选项。如果你反编译的.jar没有被混淆等,那么这个源应该可以重新编译(否则你需要通过字节码编辑来实现它。)
一旦提取了类,就需要确保在编译时使用指向-CP
的{{1}}参数进行编译,以便在编译时找到.jar中的依赖项。
重新编译并获得新的.class文件后,使用7z打开.jar,并用新的.class文件替换旧的.class文件。您可以使用命令行jar工具执行此步骤,但7z使其更容易。同样,如果jar被混淆并且类文件具有相同的名称且只有区分大小写的差异,则可能需要使用Linux重新插入.class文件。 (可能在Windows上可能,但我从来没有深入研究过它。)
我之前反编译过这个Java程序来添加命令行界面,你可以在评论中找到链接;
答案 1 :(得分:1)
然后有很多免费的实用程序,如WinZip,7-ZIP,你可以使用它们。
在打开jar文件之前,只需将jar的扩展名更改为zip文件,然后提取要编辑的特定类文件,然后使用任何反编译器对其进行反编译,进行更改,然后将其重新编译,最后将其重新放入zip文件。
希望它有所帮助。
由于