我正在寻找一个批量反编译Java类的程序。我找到了JAD,但它不支持Java的一些新功能,这个程序的好处是它可以从命令行执行并自动生成* .java文件。
我还找到了JD-GUI。它支持Java的大多数功能,但缺点是它不能进行批处理。您需要使用该程序打开该类文件,然后单击“保存”。
有没有办法让JD-GUI像JAD一样进行批量处理?
答案 0 :(得分:50)
JD-GUI的命令行反编译是highly requested功能,但尚未实现。也许您可以在此期间使用以下解决方法:
遗憾的是,我没有看到任何带有命令行支持的开源JD-GUI替代方案,所以我认为上面的内容与现在一样好。
答案 1 :(得分:3)
我可以推荐将Jad与JadRetro结合使用 - 当然,它不能使Jad生成java泛型,但反编译源(包括Java 1.5+类)在功能上等同于原始(并返回)在大多数情况下可编辑) 它的使用很简单:
jadretro * .class
jad .class
注意:
1. JadRetro可以像批处理模式一样使用:jadretro ...
2.如果您使用的是jad v1.5.8e(而不是最新的v1.5.8g),则应将“-c”选项传递给jadretro(否则jad将拒绝反编译Java 1.5+类)。
答案 2 :(得分:1)
看起来您可以使用命令行一次启动带有大量库的GUI,然后使用CTRL + ALT + s / CTRL + w快速保存/关闭每个选项卡。它在反编译一堆依赖项时不是自动化的,但是可以容忍的。 (请注意,“^”只是在Windows中执行多行命令的技巧。)
"c:\jd-gui-0.3.6.windows\jd-gui.exe" ^
c:\my-libs\lib-a.jar ^
c:\my-libs\lib-b.jar ^
c:\my-libs\lib-c.jar ^
c:\my-libs\lib-d.jar ^
c:\my-libs\lib-e.jar
答案 3 :(得分:0)
JD-GUI 能够将类文件批量导出为 .java 文件,压缩为 jar 文件。
不过这个功能不是命令行控制的,而是鼠标点击,不稳定,有时会卡死。
您可以使用 jd-cli ( https://github.com/kwart/jd-cli/releases/tag/jd-cli-1.2.0 )。
foreach
你会得到一个压缩的java源代码文件。