代码之家  ›  专栏  ›  技术社区  ›  cort

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

  •  9
  • cort  · 技术社区  · 16 年前

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

    我一直在考虑这种方法:

    • 第一个jar(从不需要更新)加载splashscreen,检查config.xml中的当前版本,并将其与server config.xml进行比较。

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

    • 启动“main.jar”。

    我不知道我是否在尝试重新设计方向盘,或者是否有比我上面所说的更好的模式。

    1 回复  |  直到 13 年前
        1
  •  5
  •   Yishai    16 年前

    我们也做了类似的事情。我们刚刚通过https下载了jar。为了知道你是否需要一个新的,我们只需检查流的大小。理论上这可能不起作用,但实际上是起作用的。我们甚至更热衷于获取jar所在的目录列表,对其进行解析并下载每个jar,因此jar的名称也不是硬编码的。不过,也有一些难看的地方。

    首先,启动一个新的JVM进程来启动新的JAR并不是那么简单。

    其次,如果更新中途失败,必须确保不会损坏JAR。

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