我正在使用具有相同 JVM 的本地机器(Windows 和 Cygwin)上构建的 jar 文件验证远程 unix 盒子上存在的 jar 文件。
作为 POC,我正在尝试验证是否使用在我的机器上生成的 jar 文件生成了相同的校验和,并在下面进行了尝试,
- 第一次使用ant脚本生成jar文件
- 计算校验和(例如“xyz abc”)
- 使用相同的 ant 脚本再次生成 jar 文件,而无需更改任何内容
- 我得到不同的校验和但相同的字节数(例如“xvw abc”)
我不确定java内部进程如何生成类文件然后生成jar文件,有人可以帮我理解以下几点
cksum
unix/cygwin的实用程序在得出值时是否考虑文件的时间戳?- 如果我们保持其他所有内容相同[编译器版本+源代码+机器+环境],生成的编译类文件/jar文件的校验和会不同吗?