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