我有一个jar文件,我需要编辑一个特定的类并将其保存回jar文件中。我尝试了不同的反编译器,但我不能保存回jar。
我尝试使用Eclipse和JADCLIPSE进行反编译。通过使用它,我可以看到反编译的类文件,但我无法编辑它。有人能帮我解决这个问题吗?
发布于 2013-07-31 04:49:18
我使用JD-GUI来反编译.jar,这有一个导出所有反编译的类的选项。如果你要反编译的.jar没有被混淆,那么这个源代码应该是可重新编译的(否则你需要通过字节码编辑来完成)。
一旦提取了类,就需要确保在编译时使用指向.;MyJar.jar的-CP参数进行编译,以便在编译时可以找到.jar中的依赖项。
在重新编译并拥有新的.class文件之后,使用7z打开.jar,并用新文件替换旧的.class文件。您可以使用命令行jar工具完成此步骤,但7z使其更容易执行。同样,如果jar被混淆,并且类文件具有相同的名称,只是区分大小写,那么您可能需要使用Linux重新插入.class文件。(可能在Windows上是可能的,但我从未深入研究过它)。
我之前对这个Java程序进行了反编译,添加了一个命令行界面,你大概可以在注释中找到链接;
http://ninjacave.com/jarsplice
发布于 2013-07-31 04:46:14
然后有很多免费的工具,比如WinZip,7-ZIP,你可以使用它们。
在打开jar文件之前,只需将jar的扩展名更改为zip文件,然后提取要编辑的特定类文件,然后使用任何反编译器对其进行反编译,进行更改,然后重新编译,最后将其放回zip文件中。
希望能有所帮助。
谢谢
https://stackoverflow.com/questions/17956922
复制相似问题