如何从 Java Web Start (JDK 8) 升级到 jlink (JDK 9+) 以用于自动更新应用程序?
Java 8 和更早的版本具有 Java Web Start,当我们更改应用程序时,它会自动更新应用程序。Oracle建议用户迁移到jlink,因为这是新的Oracle技术。到目前为止,这听起来不错。这带来了许多好处:
- Windows、Mac 和 Linux 上的原生代码
- 代码的模块化(尽管Proguard也这样做)
- 使用新的、受支持的技术。
问题:我找不到使用jlink自动更新的规范Java解决方案。
人们会认为Java Web Start可以继续使用,特别是如果一个人不经意地阅读本文档。请注意,Java Web Start 继续被突出显示。但有一个美中不足之处:Oracle正在弃用Java Web Start。它计划在JDK 11中删除。那么,官方的前进道路是什么。如果做不到这一点,人们有没有一种标准的方式?
就本问题而言,以下情况超出了范围:
- 每年向具有功能丰富的企业解决方案的人支付巨额资金。要分发的应用程序已打包到小于 50MB 的单个 jar 中。
- 强制用户运行 InstallShield 样式的应用以重新安装新版本,然后在每次推送更新时手动卸载旧版本。那是1990年代。
- 将整个应用移植为 Web 应用,重写 UI 和客户端逻辑以适应浏览器,并处理所需的所有不兼容性。该应用程序的作者在GWT上工作,并且确切地知道Web浏览器的功能。不幸的是,他们也知道所需的努力程度。
- 允许用户继续运行旧版本的应用程序。那也是1980年代。现代应用程序更新很快,并且支持曾经发布的每个版本的应用程序是站不住脚的。这就是我父亲的 COBOL 应用程序必须处理的问题,他不喜欢它。我希望技术已经进步。
- 继续使用 Java Web Start。除非Oracle改变主意,否则Java Web Start是一项注定要失败的技术。