jar 中的类名重复和反编译器错误



我有一个名为MyClass的java类,里面我正在添加新的对象。当逐个查看 winzip 的罐子时,我看到了重复的类,如下所示。

MyClass$1.class
MyClass$2.class 

等等。

什么意思?这是一个问题,因为当我尝试使用反编译器打开该jar文件时,它给出了以下错误

发生未处理的异常。按"中止"终止 程序,"重试"以正常退出程序,"忽略"以尝试 继续。

提前谢谢。

Java的原始版本没有嵌套类。添加它们时,它们在编译器中作为语法糖实现,类编译为在后台分隔类文件。名称使用 $。所以 MyClass$1 是一个包含在 MyClass 中的匿名类。

至于为什么你的反编译器崩溃了,它可能是一个糟糕的反编译器。您可以使用很多现代反编译。您也可以尝试像BytecodeViewer或Helios这样的工具,它们通过方便的GUI将许多不同的反编译器捆绑在一起。

最新更新