实现JavaFX应用程序自动更新功能

时间:2015-04-08 15:45:19

标签: java javafx javafx-8 auto-update

我即将编写一个新的跨平台应用程序,我之所以选择JavaFX,主要是因为其丰富的UI库(标准和第三方)以及本机数据绑定功能。我的应用程序将通过本机打包部署,因为缺少PPAPI Java插件(Chrome将停止Chrome 42中的NPAPI,现在处于测试阶段),这会阻止Chrome用户使用WebStart,并且因为更“经典”用户体验,因此WebStart和自动更新不在桌面上。

方案如下:

  1. 应用程序启动并检查更新
  2. 如果找到更新,请下载并将其放入临时文件夹
  3. 在应用程序关闭时,将新下载的JAR文件写入旧文件
  4. 自动重新启动更新的应用程序
  5. 然而,在我的脑海中出现了一些问题(最初这两个问题,但我可以在有更多问题后立即更新这个问题):

    • 这样做是否安全?如果我覆盖了应用程序生命周期中已经使用过的一些JAR,我是否会冒险JVM变得疯狂?
    • 我很难找到一种方法来自动重启我的JavaFX应用程序。它甚至可能吗?

    感谢大家的帮助。

3 个答案:

答案 0 :(得分:5)

查看GetDownUpdateFX。它实现了一个bootstrap下载程序,用于检查更新,下载它们并在应用程序更新后立即启动它

答案 1 :(得分:2)

也许你可以试试install4j虽然付了钱。我最喜欢的主要功能是自动更新以及您可以轻松配置安装程序的方式(创建Linux - deb,rpm安装程序,Mac和窗口安装程序),甚至可以打包所需的jdk版本来运行您的应用程序(这意味着您的用户在使用您的应用程序之前不需要先安装该Java版本)

尽管如此,这似乎有点过分了你的需求

答案 2 :(得分:0)

我最近创建了update4j,它与Java 9的模块系统配合使用,符合您的要求。