Java Swing桌面应用程序中的自动更新功能

我已经开发了一个桌面Swing应用程序,并且正在考虑提供自动更新功能的最佳方法。我知道JavaWebStart提供了此功能,但我认为它不适合我的需求,因为我需要读取本地文件,因此需要对jar进行签名。此外,JWS需要额外的工作才能在服务器中部署,而现在我只需要上传.jar。

我一直在考虑这种方法:

  • 第一个JAR(不需要更新)将加载初始屏幕,在config.xml中检查当前版本,并将其与服务器config.xml进行比较。

  • 如果服务器版本较新,请询问用户是否要更新。在这种情况下,下载新的“ main.jar”,新的“ config.xml”和新的启动/图标,检查MD5SUM,然后用新文件替换旧文件。

  • 启动“ main.jar”。

我不知道是否要重新发明轮子,或者是否有比我上面提到的模式更好的模式。

回答:

我们做了类似的事情。我们只是通过https获取并下载了jar。要知道您是否需要一个新的,我们只需检查流的大小即可。从理论上讲,这可能不起作用,但实际上它确实起作用。我们甚至得到了罐子所在的目录清单,对其进行了解析并下载了每个罐子,因此更加奇特,因此罐子的名称也不是硬编码的。不过,有几点丑陋之处。

首先是启动一个新的jvm进程来启动新的jar,这不是那么简单。

其次,如果更新在中间失败,则必须确保您不会破坏jar。

最后,无法使用此过程来更新引导jar。

以上是 Java Swing桌面应用程序中的自动更新功能 的全部内容, 来源链接: utcz.com/qa/426376.html

回到顶部