所以,我有第三方库,它是一个 .jar 文件。那个罐子里有一些类。问题是,该 .jar 中的一个类中有一个错误。我知道它是因为我可以反编译 jar 文件,查看 java 代码,我很确定,该类是我的程序错误的来源。
这个想法是,我删除了这个类并用我自己的类替换它,但我不知道如何。
所以,我有第三方库,它是一个 .jar 文件。那个罐子里有一些类。问题是,该 .jar 中的一个类中有一个错误。我知道它是因为我可以反编译 jar 文件,查看 java 代码,我很确定,该类是我的程序错误的来源。
这个想法是,我删除了这个类并用我自己的类替换它,但我不知道如何。
有多种方法可以做到这一点:
尝试使用winrar。您可以在其中打开您的 jar,探索包含类文件的目录。您可以删除和添加类文件。
如果您不想使用 winrar,请执行以下操作:
使用此命令提取 jar
jar -xvf yourjar.jar
它会爆炸罐子。删除旧的类文件并添加更新的类文件
使用以下命令重新创建 jar
jar -cvf yourjar.jar directoryofexploderjar/
扩展类和重写方法消除错误
使用JDEC反编译替换类(http://jdec.sourceforge.net/)
在与原始类相同的包中编写您自己的类,确保您的类在 java 类路径上的 3-rd 方 jar 之前。这样您将覆盖原始版本,类加载器将加载您的类。