1

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

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

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

作业完成后,如何删除安装程序?将它保存在临时目录中并在新版本应用程序启动时检查它?


从后来的评论:

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

4

2 回答 2

3

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

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

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

于 2012-05-04T05:47:39.493 回答
3

可能有几种方法。既然您说应用程序是跨平台的,那么使用 Java 进行更新是明智的。

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

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


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

于 2012-05-05T06:45:57.830 回答