6

我正在构建可以从网上免费下载的 Java 应用程序。我想在修复错误或增强应用程序的情况下添加自动更新功能。对于自动更新,我将程序分成 3 个单元。

  1. Base - 非常小的代码,将检查第二个单元的新版本(上传器)更新并运行它
  2. Uploader 将检查项目的新更新并下载任何更新并运行它
  3. 主程序 - 这包含主应用程序并包含所有模块。

我这样做有两个原因:

  1. 我不希望客户端在有任何更新的情况下重新启动应用程序
  2. 由于应用程序仍然是新的,我不希望出现用户无法运行或更新应用程序的任何问题,因此 Base 非常小,几乎没有错误。

是否有通用的 Java 方法/第三方来进行自动更新?

4

3 回答 3

6

Java Web Start (JWS) 是 Oracle Corporation 的技术,用于直接从网络或 Internet 链接启动富客户端(Swing、AWT、SWT)桌面应用程序。它为支持 Java 的平台提供“一键式”安装。

JWS 提供了许多吸引人的功能,包括但不限于启动屏幕、桌面集成、文件关联、自动更新(包括延迟下载和更新的编程控制)、按平台、架构或 Java 版本、配置划分本地和其他资源下载运行时环境(最低 J2SE 版本、运行时选项、RAM 等),使用扩展轻松管理公共资源。

于 2013-04-16T04:00:12.047 回答
0

You can try to use OSGi.

If you will plan properly modular structure of the application, there is a chance that when you update the application modules you do not have to restart the application. You will only need to restart the modules, which will depend on the updated module. Reset dependent modules will take place within the application without restarting the application.

I prefer working with Felix OSGI applications.

Apache Felix

于 2014-06-08T07:55:17.670 回答
0

虽然 Java Webstart 正是解决 OP 问题的技术,但同时 Oracle 从其 Java 版本中删除了 Webstart。

幸运的是, Open Webstart弥补了这一差距:

Java Web Start (JWS) 在 Java 9 中被弃用,从 Java 11 开始,Oracle 从其 JDK 发行版中删除了 JWS。这意味着安装了最新版本 Java 的客户端不能再使用基于 JWS 的应用程序。由于对 Java 8 的公开支持已于 2019 年第二季度结束,因此公司不再获得 Java Web Start 的任何更新和安全修复程序。

这就是我们决定创建 OpenWebStart 的原因,它是 Java Web Start 技术的开源重新实现。我们的替代品提供了 Java Web Start 和 JNLP 标准最常用的功能,使您的客户可以继续使用基于 Java Web Start 和 JNLP 的应用程序而无需任何更改。

于 2021-10-30T21:19:05.590 回答