5

我正在重新组织我们的 java 代码库,并想比较我们生成的 jar 文件。

当我在旧的源代码树中构建时,我得到一个大小为 3360081 的 jar 文件。

在新的源代码树中,它是 3360128。

我做了一个“jar tvf jarfile”,然后从文件中删除日期。

清单如下所示:

     0 Mon Mar 16 10:41:16 EDT 2009 META-INF/
   102 Mon Mar 16 10:41:14 EDT 2009 META-INF/MANIFEST.MF
     0 Mon Mar 16 10:41:14 EDT 2009 decodes/

删除日期后,列表如下所示:

     0  META-INF/
   102  META-INF/MANIFEST.MF
     0  decodes/

这两个 jar 列表是相同的。

什么会导致“相同”的 jar 文件出现 47 字节的差异?

我在 RedHat Linux 4 上运行编译。

4

3 回答 3

7

编译文件的文件修改时间很可能是原因。此外,您的类文件实际上可能不同。如果你重新组织你的包结构,他们肯定会的。

于 2009-03-16T15:30:07.030 回答
2

可能不是这种情况 - 但是您在编译两个源代码库时是否使用不同的编译器版本(甚至是微小的版本差异)?

于 2009-03-16T15:59:28.847 回答
1

如果您使用BeyondCompare(或类似的),它将区分您的 jar 文件并识别档案中的不同文件(直至文本文件的行/字符差异,或仅突出显示已更改的二进制文件)。

(我认为文件修改时间不会以 .jar 格式存储在它们的文本表示中,而且我不相信它们会影响 .jar 文件的大小)

于 2009-03-16T16:34:16.733 回答