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

时间:2009-09-07 11:59:14

标签: java swing jar auto-update

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

我一直在考虑这种方法:

  • 第一个JAR(永远不需要更新)加载启动画面,检查config.xml中的当前版本并将其与服务器config.xml进行比较。

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

  • 启动“main.jar”。

我不知道如果我正在尝试重新发明轮子,或者如果有一个比我上面提到的模式更好的模式。

1 个答案:

答案 0 :(得分:5)

我们做了类似的事情。我们刚刚通过https获取并下载了jar。要知道您是否需要新的,我们只需检查流上的大小。理论上可能不起作用,但实际上它确实有效。通过获取jar所在的目录列表,解析它并下载每个jar,我们甚至变得更加漂亮,因此jar的名称也没有硬编码。但是有一些丑陋的观点。

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

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

最后,没有办法用这个过程更新bootstraping jar。

相关问题