繁体   English   中英

如何在Java中实现自动更新?

[英]How to implement auto update in Java?

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

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

退出后如何启动此脚本/ Java类?

作业完成后,如何删除安装程序? 将其保存在temp目录中,并在新版本应用程序启动时将其签出?


从以后的评论:

我知道JWS是一个不错的选择,但是由于“我的老板被拒绝”的原因,我无法使用它。

由于应用程序。 有一个GUI(通过Swing标签判断),请使用Java Web Start进行部署:

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

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

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

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

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM