我正在重新组织我们的java代码库,并希望比较我们生成的jar文件。
当我在旧的源代码树中构建时,我得到的jar文件大小为3360081。
在新的源代码树中,它是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上运行编译。
答案 0 :(得分:7)
编译文件的文件修改时间很可能是原因。此外,您的类文件可能实际上是不同的。如果你重新组织了你的包结构,他们肯定会。
答案 1 :(得分:2)
情况可能并非如此 - 但是在编译两个源代码库时,你是否有可能使用不同的编译器版本(即使是较小的版本差异)?
答案 2 :(得分:1)
如果您使用BeyondCompare(或类似),它将区分您的jar文件并识别存档中的不同文件(直到文本文件的行/字符差异,或者只是突出显示有二进制文件的文件改变)。
(我不认为文件修改时间以.jar格式存储在文本表示中,我不相信它们会对.jar文件大小有所贡献)