1

我们不小心从系统中删除了一些 JAVA 源文件。

当我们直接从存储库中签出一个文件夹作为 Eclipse 项目,然后尝试将另一个 Eclipse 项目中的文件夹复制到这个文件夹中时,就会发生这种情况。奇怪的是,所有这些文件夹文件都从本地系统中消失了(显然它们从未进入 SVN 存储库)。

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

4

3 回答 3

3

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

但是,从 Google 出现的各种问题中可以清楚地看出一件事,那就是“jd-gui”不了解如何反编译档案(JAR、EAR 等)。因此,也许您只需要取消 JAR 即可使其正常工作。

您可以尝试的另一件事(首先)是查看“javap”对“jd-gui”不喜欢的类文件的影响。

于 2012-08-01T06:28:47.660 回答
0

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

www.varanekas.com/jad/

您可能需要解压缩 jar 文件,然后运行类似以下的内容来反编译它们

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

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

于 2012-08-01T12:31:15.157 回答
0

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

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

于 2020-07-08T08:40:32.453 回答