Java 8及之前版本有Java Web Start,可以在我们更改应用程序时自动更新。Oracle建议用户迁移到jlink,因为这是新的Oracle技术。到目前为止,这听起来很不错。这带来了许多好处:
- Windows、Mac和Linux上的本地代码
- 代码模块化(虽然Proguard也可以做到这一点)
- 使用新的支持技术。
如果仅仅是阅读此文档,人们可能会认为Java Web Start仍然可以继续使用。请注意,Java Web Start仍然被显著列出。但是有一个问题:Oracle正在弃用Java Web Start。它计划在JDK 11中移除。那么,官方的前进道路是什么?如果失败了,人们会按照标准方式进行吗?
对于本问题,以下内容不在讨论范围内:
- 每年向拥有功能丰富的企业解决方案的人支付巨额费用。要分发的应用程序已经打包成一个小于50MB的单个jar文件。
- 强制用户运行类似InstallShield的应用程序以重新安装新版本,然后每次推送更新时手动卸载旧版本。那太90年代了。
- 将整个应用程序移植为Web应用程序,重写UI和客户端逻辑以适应浏览器,并处理所有相关的不兼容性。应用程序的作者曾在GWT上工作过,他们非常了解Web浏览器的能力。不幸的是,他们也知道所需的努力程度。
- 允许用户继续运行旧版本的应用程序。那也太80年代了。现代应用程序更新迅速,支持发布的每个应用程序版本是不可行的。那是我父亲的COBOL应用程序所必须处理的问题,他并不喜欢它。我希望技术已经进步了。
- 继续使用Java Web Start。除非Oracle改变主意,否则Java Web Start是注定要失败的技术。
jlink
允许您创建自包含的运行时映像以进行部署,但它并不提供部署本身,更不用说自动更新功能了。这只是一个服务,Oracle不再提供。 - Holger