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

2022-09-02 10:51:30

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

方案如下:

  1. 应用程序启动并检查更新
  2. 如果找到更新,请下载它们并将其放在临时文件夹中
  3. 在应用程序关闭时,将新下载的 JAR 文件写入旧文件
  4. 自动重新启动更新的应用程序

但是,我脑海中出现了一些问题(最初是这两个问题,但是一旦我有更多问题,我可能会立即更新这个问题):

  • 这样做安全吗?我是否冒着JVM以某种方式变得疯狂的风险,如果我覆盖了应用程序生命周期中已经使用的一些JAR?
  • 我正在努力寻找一种自动重新启动JavaFX应用程序的方法。这有可能吗?

谢谢大家的帮助。


答案 1

看看GetDown或UpdateFX它实现了一个引导下载器,该下载器检查更新,下载更新并在更新后立即启动应用程序


答案 2

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


推荐