1. 基础-非常小的代码,将检查第二个单元(上传程序)的新版本,更新它并运行它。 2. 上传程序将检查项目的新更新,并下载任何更新并运行它。 3. 主程序-包含主要应用程序和所有模块。
我以上述方式做出上述决定有两个原因:
1. 我不希望客户在更新时重新启动应用程序。 2. 由于该应用程序仍然是新的,我不希望用户无法运行或更新应用程序,因此基础部分非常小,几乎没有错误。
是否有通用的Java方法/第三方软件可以进行自动更新?
Java Web Start(JWS)是Oracle Corporation所使用的技术,可直接从网络或互联网链接启动丰富客户端(Swing,AWT,SWT)桌面应用程序。对于支持Java的平台,它提供“一键”安装。
JWS提供了许多吸引人的功能,包括但不限于闪屏、桌面集成、文件关联、自动更新(包括惰性下载和更新的编程控制),按平台、架构或Java版本划分本机和其他资源下载,配置运行时环境(最低J2SE版本、运行时选项、RAM等),使用扩展轻松管理常见资源。
你可以尝试使用OSGi。
如果你能合理规划应用程序的模块化结构,那么当你更新应用程序模块时,有可能无需重启应用程序。你只需要重新启动依赖于更新模块的模块即可。在不重启应用程序的情况下,应用程序内部将会进行相关模块的重置。
我更喜欢使用Felix OSGI应用程序。
虽然Java Webstart正是解决OP问题的技术,但Oracle已经从他们的Java版本中删除了Webstart。
幸运的是,Open Webstart填补了这一空缺:
Java Web Start (JWS)在Java 9中被弃用,并且从Java 11开始,Oracle将JWS从其JDK发行版中删除。这意味着安装了最新版本Java的客户端不能再使用基于JWS的应用程序。由于公共支持Java 8已于2019年第二季度结束,因此公司不再获得任何Java Web Start的更新和安全修复。
这就是为什么我们决定创建OpenWebStart,这是Java Web Start技术的开源重新实现。我们的替代品提供了Java Web Start和JNLP标准的最常用功能,以便您的客户可以继续使用基于Java Web Start和JNLP的应用程序而无需进行任何更改。
ExtensionInstallerService
中调用它。同时还需要提供许多其他文件和依赖项。 - Andrew ThompsondeployJava.js
的作用。在链接的页面中提到了它(显然你在发表不相关的评论之前没有仔细阅读)。 ;) - Andrew Thompson