我们希望实现这样的功能:当用户首次运行应用程序时,应用程序将从服务器下载jar文件到本地PC并加载jar文件但是当用户再次运行应用程序时,应用程序可以区分内容本地文件夹中的jar文件与服务器上的jar文件相同,如果没有再次下载,只需从本地文件夹加载;如果不是应用程序将下载它并更新本地(服务器和本地的jar文件名必须相同)。目前我能想到的一个解决方案是使用校验和,即应用程序生成本地jar文件的校验和,然后从服务器获取服务器jar文件的校验和,检查它们是否相同,如果是,则不再下载,如果没有下载和更新。有没有一种简单的方法来生成jar文件的校验和?或者还有其他更好的解决方案吗?谢谢。
答案 0 :(得分:3)
计算jar校验和与计算任何文件的校验和相同。但看起来你需要Java Web Start,它会处理所有事情。
答案 1 :(得分:1)
似乎我可以使用“java.util.zip.CRC32”来获取jar文件的校验和值。但是我不确定两个jar文件的校验和值是否相同,但事实上两个jar文件是不同的(内容有点不同)?
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用Google Guava图书馆的Files.getChecksum(file)
答案 4 :(得分:0)
如果您使用maven构建jar文件,则有一个maven插件,用于生成已编译jar的校验和。 Maven Plugin Link。
对于下载的jar,您可以在本地保存,而不是生成罐子检查总和。从服务器获取校验和,并在每次需要检查罐子校验和是否更改时向其发送请求,如果是,则下载新校验和。