繁体   English   中英

如何为jar文件生成校验和

[英]How to generate a checksum for jar file

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

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

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

您可以使用Google Guava库中的Files.getChecksum(file)

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

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

正如Bozho所说,Java Web Start当然是正确的方法。 有关手工制作的替代方法,请参见向Java Swing应用程序添加自我更新功能的最佳方法是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM