【问题标题】:How to implement auto update in Java?如何在 Java 中实现自动更新?
【发布时间】:2012-05-04 05:43:23
【问题描述】:

全部: 我在这里遇到一个问题,我的应用程序由一些 jar 文件和一些其他文件组成,它们都位于一个目录中。我计划实现一个自动更新功能。当应用程序知道服务器上有新版本时,它将下载一个 zip 文件到临时目录。下载后会询问客户是否要安装。如果是,我的应用程序将退出,我需要解压缩 zip 文件并覆盖原始目录中的所有文件。现在我想知道:

如何解压文件并覆盖目录?创建一个脚本(这意味着我需要为 Windows 编写 bat 和为其他平台编写 shell)?创建一个java类来做呢?

退出后如何启动这个脚本/java类?

工作完成后,如何删除安装程序?保存在临时目录下,新版本应用启动时查看?


来自后来的 cmets:

我知道 JWS 是一个不错的选择,但由于“我老板否认”的原因,我不能使用它。

【问题讨论】:

  • Java Web Start 是针对您提出的问题的标准 Java 解决方案。除非您对老板拒绝的原因给出技术限制,否则您不太可能得到不同的答案。

标签: java swing deployment installation auto-update


【解决方案1】:

可能有几种方法。既然你说这个应用是跨平台的,那还是用Java来更新吧。

您可以创建一个小 jar 文件来处理更新过程。它可能是初始应用程序的一部分(假设它不会被更新),也可能是更新包的一部分(然后您也可以对其进行更新)。

因此,您的应用程序会下载 zip,将其解压缩到临时目录并启动更新程序,然后退出。更新程序会在旧 jar 上复制新 jar。


但最好不要重新发明轮子。考虑使用 JWS:它提供了更多的功能并且需要更少的努力来实现。拒绝 JWS 必须有充分的理由。你应该通过解释使用 JWS 的好处来说服你的老板。

【讨论】:

  • 谢谢大家。完成它。我写了一个类来做安装。我将被应用程序中的关闭挂钩分叉。 JWS当然很棒,希望下次能用JWS的方式来做。
【解决方案2】:

自从应用程序。有一个 GUI(根据 Swing 标签判断),使用 Java Web Start 部署它:

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

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

【讨论】:

  • 感谢您的建议,我知道 JWS 是一个不错的选择,但由于某种原因,我无法使用它。
  • 其实原因很简单,老板否认了。 8-)
  • 现在是时候问问你的老板了——“为什么?”因为可能的替代方案将取决于答案。
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 2017-12-19
  • 2011-10-29
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多