如何反编译jd-gui反编译器无法反编译的Java类文件?

时间:2012-08-01 06:00:41

标签: java class decompiler

我们意外地从系统中删除了一些JAVA源文件。

当我们直接从存储库中检出一个文件夹作为eclipse项目,然后尝试将另一个eclipse项目中的文件夹复制到这个文件夹时,就发生了这种情况。所有这些文件夹文件已经从本地系统中消失了(显然他们从来没有这样做过)到SVN存储库)。

不知怎的,我们已经获得了一些CLASS文件的.svn-base文件。现在我们正在尝试反编译类文件以获取源代码。但是,当jd编译器尝试处理它们时,某些类文件会出现错误“无效的输入文件”。 还有其他解决办法吗?

3 个答案:

答案 0 :(得分:3)

据我所知,“jd-gui”是封闭源代码,因此您可能需要联系开发人员以了解该消息的含义。 (如果它是开源的,我们可以查看源代码以找出可能存在的问题!)

然而,谷歌出现的各种问题都清楚地表明,“jd-gui”并不了解如何反编译档案(JAR,EAR等)。所以也许你只需要解开某些东西就可以使它工作。

你可以尝试的另一件事(首先)是看看“javap”对“jd-gui”不喜欢的类文件做了什么。

答案 1 :(得分:0)

尝试使用JAD反编译您的文件。

www.varaneckas.com/jad /

您可能需要解压缩jar文件,然后运行以下内容以反编译所有

find <srcdirectory> -name *.class -exec jad -s .java -r -ff -clear -debug -d <dest directory> {} \;

我没有测试过上面的命令,但希望它几乎就在那里......

答案 2 :(得分:0)

对于某些类文件,我也有错误“无效的输入文件”。我正在使用jd-gui的0.3.6版本。下载最新版本的jd-gui(在撰写本文时为1.6.6)之后,我可以反编译以前失败的类文件。

因此,如果有人仍然存在此问题,则检查版本并升级(如果版本较旧)是有意义的。这是“最新发布”下载页面的链接: http://java-decompiler.github.io/