为什么每次构建时,相同的JAR文件都有不同的哈希值?

use*_*046 12 java bytecode jar maven

我一直在考虑检查jar文件的哈希值,以确定它是否已经改变,但事实证明,每次构建它时,相同的jar文件都有不同的哈希值(从eclipse导出为jar文件,或者使用maven构建它) ).我删除了清单文件的日期值和内容,但它仍然不同.字节码生成中是否包含时间戳或其他内容?

wer*_*ero 9

JAR文件是ZIP文件,它包含其本地文件头和中央目录文件头中的最后修改日期.这将导致您的构建的不同哈希.

如果在完全相同的文件集上运行JAR命令(具有相同的文件日期)并跳过清单文件创建,它应该为您提供完全相同的JAR文件(如果ZIP中的文件顺序不会更改).