gpt4 book ai didi

java - 二进制文件不同但与 JVM 不同?

转载 作者:行者123 更新时间:2023-12-04 06:37:02 24 4
gpt4 key购买 nike

我遇到了一个问题,即 org.apache.commons.io.FileUtils.copyFile(File, File) 生成的文件略有不同。当我将这些文件与 bsdiff 或在编辑器中进行比较时,我可以看出它们是不同的。某些字节被复制为问号。例如 0200(八进制)被复制为 ? (077 八进制)。

因此,我创建了一个测试用例以包含在错误报告中。我制作了可执行文件的副本,然后使用 FileUtils.checksumCRC32(File) 进行比较。出乎意料的是,这些文件具有相同的校验和。然后我通过迭代每个文件的 FileInputStream 来比较它们。这也断言文件是相同的。

文件肯定不同。一个运行,另一个没有。 bsdiff 生成两个文件的差异。我可以通过肉眼检查文件来判断某些字节被错误地复制了。

但是,对于 JVM,这些文件是相同的。关于我为什么观察这种行为的任何想法?

系统信息:
Windows 7,64 位; JVM 1.6.0_22,32 位

最佳答案

嗯,对不起大家。 Maven 正在“过滤”可执行文件,它在将其复制到 Maven 的“目标”目录之前更改了编码。然后 FileUtils 正确地将困惑的可执行文件从“目标”复制到目标。我正在将源目录中的版本与目标目录中的版本进行比较。

关于java - 二进制文件不同但与 JVM 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4752487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com