15

所以,我有第三方库,它是一个 .jar 文件。那个罐子里有一些类。问题是,该 .jar 中的一个类中有一个错误。我知道它是因为我可以反编译 jar 文件,查看 java 代码,我很确定,该类是我的程序错误的来源。

这个想法是,我删除了这个类并用我自己的类替换它,但我不知道如何。

4

3 回答 3

18

有多种方法可以做到这一点:

  1. 尝试使用winrar。您可以在其中打开您的 jar,探索包含类文件的目录。您可以删除和添加类文件。

  2. 如果您不想使用 winrar,请执行以下操作:

使用此命令提取 jar

jar -xvf yourjar.jar

它会爆炸罐子。删除旧的类文件并添加更新的类文件

使用以下命令重新创建 jar

jar -cvf yourjar.jar directoryofexploderjar/

于 2013-05-29T05:36:55.817 回答
1
  1. 扩展类和重写方法消除错误

  2. 使用JDEC反编译替换类(http://jdec.sourceforge.net/

于 2013-05-29T05:29:19.480 回答
0

在与原始类相同的包中编写您自己的类,确保您的类在 java 类路径上的 3-rd 方 jar 之前。这样您将覆盖原始版本,类加载器将加载您的类。

于 2013-05-29T05:41:25.137 回答