【发布时间】:2016-04-29 05:05:19
【问题描述】:
我正在使用具有相同 JVM 的本地计算机(Windows 和 Cygwin)上构建的 jar 文件验证远程 unix 机器上存在的 jar 文件。
作为 POC,我正在尝试验证是否使用在我的机器上生成的 jar 文件生成了相同的校验和,并在下面进行了尝试,
- 第一次使用ant脚本生成jar文件
- 计算校验和(例如“xyz abc”)
- 使用相同的 ant 脚本再次生成 jar 文件,无需更改任何内容
- 我得到了不同的校验和,但字节数相同(例如“xvw abc”)
我不确定java内部进程是如何产生类文件和jar文件的,有人可以帮我理解以下几点
- unix/cygwin 的
cksum实用程序在得出值时是否考虑文件的时间戳? - 如果我们保持其他所有内容相同[编译器版本+源代码+机器+环境],生成的编译类文件/jar文件的校验和会不同吗?
【问题讨论】:
-
你找到解决方案了吗?
-
不,我必须反编译所有类文件并验证
标签: checksum javacompiler