如何为jar文件生成校验和

时间:2011-09-19 09:03:08

标签: java jar

我们希望实现这样的功能:当用户首次运行应用程序时,应用程序将从服务器下载jar文件到本地PC并加载jar文件但是当用户再次运行应用程序时,应用程序可以区分内容本地文件夹中的jar文件与服务器上的jar文件相同,如果没有再次下载,只需从本地文件夹加载;如果不是应用程序将下载它并更新本地(服务器和本地的jar文件名必须相同)。目前我能想到的一个解决方案是使用校验和,即应用程序生成本地jar文件的校验和,然后从服务器获取服务器jar文件的校验和,检查它们是否相同,如果是,则不再下载,如果没有下载和更新。有没有一种简单的方法来生成jar文件的校验和?或者还有其他更好的解决方案吗?谢谢。

5 个答案:

答案 0 :(得分:3)

计算jar校验和与计算任何文件的校验和相同。但看起来你需要Java Web Start,它会处理所有事情。

答案 1 :(得分:1)

似乎我可以使用“java.util.zip.CRC32”来获取jar文件的校验和值。但是我不确定两个jar文件的校验和值是否相同,但事实上两个jar文件是不同的(内容有点不同)?

答案 2 :(得分:0)

正如Bozho所说,Java Web Start当然是正确的做法。对于手工制作的替代品,请参阅What's the best way to add a self-update feature to a Java Swing application?

答案 3 :(得分:0)

您可以使用Google Guava图书馆的Files.getChecksum(file)

答案 4 :(得分:0)

如果您使用maven构建jar文件,则有一个maven插件,用于生成已编译jar的校验和。 Maven Plugin Link

对于下载的jar,您可以在本地保存,而不是生成罐子检查总和。从服务器获取校验和,并在每次需要检查罐子校验和是否更改时向其发送请求,如果是,则下载新校验和。