我想注释掉.class文件的几行。我没有源文件,但是当我对该文件进行反编译时,我发现它正在尝试导入不存在的类,这会导致错误和异常。因此,我想注释掉那些麻烦的行,以消除导致错误的原因。据我所知,注释只是在.class文件中删除了。如何删除.class文件中的命令行?
答案 0 :(得分:1)
类文件是二进制文件格式。在类文件级别没有注释的概念。因此,也没有进口的概念。您只需引用所需的任何类,JVM就会根据需要加载它们。
听起来您实际上要尝试的是编辑一个没有源文件的类文件,并且您失败了,因为反编译的代码会导致编译器错误。除了没有依赖源的问题之外,这并不意外,因为编译和反编译都是有损过程。通常,您不能指望能够通过反编译器来回类。
一种选择是使用诸如Krakatau之类的汇编程序/反汇编程序对直接在字节码级别上编辑类文件。 Krakatau可以将任何有效的类文件往返转换为人类可读的程序集格式并返回。这使您可以编辑类文件,而不必担心编译错误或缺少依赖项或任何其他类似问题。缺点是它要求您了解Java字节码和类文件格式。