使用JD-GUI批量反编译Java文件

问题描述 投票:0回答:6

我正在寻找一个批量反编译Java类的程序。我找到了JAD,但是它不支持Java的一些新特性,而这个程序的好处是它可以从命令行执行并自动生成*.java文件。

我还找到了JD-GUI。它支持Java的大部分功能,但缺点是不能做批处理。您需要用程序打开类文件,然后单击“保存”。

有没有办法让JD-GUI像JAD一样做批处理?

java decompiling
6个回答
60
投票

JD-GUI 的命令行反编译是一项“强烈要求”的功能,但尚未实现。也许您可以同时使用以下解决方法:

将您想要反编译的所有类一起jar(或zip)。
  1. 启动 JD-GUI 并打开您的 jar (zip) 存档。
  2. 使用“文件”-“保存 JAR 源”菜单选项。它将反编译您存档中的所有类并将其源代码保存到另一个 zip 文件中。
  3. 不幸的是,我还没有看到任何具有命令行支持的好的开源 JD-GUI 替代品,所以我认为上面的内容已经是目前为止最好的了。


3
投票
JadRetro

结合使用 - 当然,它不能使 Jad 生成 java 泛型,但反编译的源代码(包括 Java 1.5+ 类)在功能上等同于原始源代码(并且在大多数情况下可以反向编译) ). 它的使用很简单:
jadretro *.class

贾德.class


备注:

1. JadRetro 可以在批处理模式下使用,如下所示:jadretro ...

2. 如果您使用的是 jad v1.5.8e(而不是最新的 v1.5.8g),则应将“-c”选项传递给 jadretro(否则 jad 将拒绝反编译 Java 1.5+ 类)。


1
投票

"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



1
投票


1
投票

但是这个功能不是通过命令行控制的,而是通过鼠标点击来控制的,这个不太稳定,有时会卡住。

您可以使用jd-cli(

https://github.com/kwart/jd-cli/releases/tag/jd-cli-1.2.0

)。

准备你的 .jar 文件(包含类)
  1. 输入:
  2. jd-cli target.jar -od jar_result -g ALL
  3. 
    
  4. 您将获得一个压缩的 java 源代码文件。


0
投票
File -> Save All Sources

已经解决了这个需求。

对于命令行界面,kwart 的 jd-cli 现在是:

https://github.com/intoolswetrust/jd-cli

这里还提供了 jd-gui 的分支:

https://github.com/nbauma109/jd-gui-duo

© www.soinside.com 2019 - 2024. All rights reserved.