如果我需要将补丁应用到库中,.jar归档不再有用吗?

时间:2011-03-02 11:27:05

标签: java jar

我已经下载了Lucene jar文件。我将它包含在我的类路径中以运行我的Lucene应用程序。

但是,我现在需要应用补丁。我应该下载Lucene源代码,应用补丁并编译..对吗?我不能再使用罐子......

感谢

PS。我还需要知道如何在java中应用补丁......终端的命令是什么?

4 个答案:

答案 0 :(得分:2)

可能是替代方法,但创建一个全新的jar文件将是你最好的选择,IMO。解决一些微妙的问题比提供第二个jar文件以优先于某些类等要困难得多。

答案 1 :(得分:1)

我不确定我是否正确,但在我看来,应用补丁,你的纠正类必须出现在不正确的类之前的类路径上。因此,您可以制作一个包含更正类的jar,并将其放在类路径上,而不是原始的lucene jar。

答案 2 :(得分:1)

要添加类或更新现有类,您将使用相同的jar命令,但使用该-u选项。从终端尝试jar -help

答案 3 :(得分:1)

Jon Skeet是正确的 - 创造一个新罐子是最好的事情。您可以只将包含新.class文件的目录树放在旧jar文件之前的类路径中,但这样很麻烦且容易出错。

要应用修补程序,请在源的根目录中使用命令patch -p<n> <patch_file.txt

其中<n>是要从修补程序中的路径名中剥离以匹配源树中路径名的目录数 - 从0开始。