Java 反编译恢复的.class文件时出错
我想将一个用jgrasp编写的java程序导入eclipse,但我的尝试没有成功,因此我决定从eclipse中删除该文件,因为我认为该文件仍将保存在从中导入该文件的文件夹中。然而,我很快发现这只是删除了我的程序一起。我使用EaseUs data recovery来恢复我删除的文件,但它只能恢复.class文件。我阅读了如何将.class文件反编译回.java文件,并决定去一个名为javadecompilers.com的网站。我在其他项目上进行了测试,效果非常好。我附加了.class文件,它将其反编译回.java文件。但是,当我尝试附加我恢复的类文件时,它不起作用,我得到以下错误: 无法加载指定的类: org.benf.cfr.reader.util.CannotLoadClassException:HangmanGame.class-org.benf.cfr.reader.util.confusedcfrexException:Magic!=类文件“HangmanGame.class”的CafebabeJava 反编译恢复的.class文件时出错,java,eclipse,class,decompiler,Java,Eclipse,Class,Decompiler,我想将一个用jgrasp编写的java程序导入eclipse,但我的尝试没有成功,因此我决定从eclipse中删除该文件,因为我认为该文件仍将保存在从中导入该文件的文件夹中。然而,我很快发现这只是删除了我的程序一起。我使用EaseUs data recovery来恢复我删除的文件,但它只能恢复.class文件。我阅读了如何将.class文件反编译回.java文件,并决定去一个名为javadecompilers.com的网站。我在其他项目上进行了测试,效果非常好。我附加了.class文件,它将其反
如果我在记事本中打开类文件,我可以清楚地看到它不是空的,那么为什么我的所有恢复程序都会出现此错误。有没有办法将它们转换回.java文件?谢谢。恢复的类文件已损坏。类文件的前四个字节是十六进制:CA、FE、BA、BE=十进制:202、254、186、190=文本:Êþ¾。如果您使用二进制编辑器打开(您可以在jGRASP中使用二进制模式),这就是您应该在开始时看到的。如果幸运的话,恢复的文件只是在开始时有额外的字节。你可以备份它们,在二进制编辑器中打开,搜索“Êþþþ¾”,如果找到,就把前面的所有内容都删掉。如果是这种情况,那么末尾可能还有额外的字节。反编译器可能会也可能不会处理这个问题。可能有一些反编译器或类文件查看器可以提供帮助,或者您可以修改开源类文件扫描程序以找到正确的端点。有免费和商用的反编译器,通常更好的是更昂贵的反编译器,但它们并不完美,它们当然不会提供可读的变量,但是试试免费的也没什么坏处。如果它不起作用,那么您最好的办法可能是重新编写代码。