作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我一直在考虑检查 jar 文件的散列值以确定它是否已更改,但事实证明每次构建同一个 jar 文件时都有不同的散列值(从 eclipse 导出为 jar 文件,或构建它使用 Maven)。我已经删除了 list 文件的日期值和内容,但它仍然不同。字节码生成中是否有包含时间戳或其他内容的内容?
最佳答案
JAR 文件是一个 ZIP 文件,它在其 local file headers 中包含最后修改日期。和中央目录文件头。这将导致您的构建具有不同的哈希值。
如果您在完全相同的一组文件(具有相同的文件日期)上运行 JAR 命令并跳过 list 文件创建,它应该会为您提供完全相同的 JAR 文件(如果 ZIP 中文件的顺序没有改变)。
关于java - 为什么同一个 JAR 文件在我每次构建时都有不同的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43993329/
我是一名优秀的程序员,十分优秀!