全部: 我在这里面临一个问题,我的应用程序由一些jar文件和一些其他文件组成,它们都位于一个目录中。我打算实施自动更新功能。当应用知道服务器上有新版本时,它会将一个zip文件下载到临时目录。下载后,它会询问客户是否要安装它。如果是,我的应用程序将退出,我需要解压缩zip文件并覆盖原始目录中的所有文件。现在我想知道:
如何解压缩文件并覆盖目录?创建一个脚本(这意味着我需要为Windows编写bat和其他平台的shell)?创建一个java类来做它?
退出后如何启动此脚本/ java类?
作业完成后,如何删除安装程序?将它保存在临时目录中并在新版本应用程序启动时检查出来吗?
我知道JWS是一个不错的选择,但由于“老板否认”的原因,我无法使用它。
答案 0 :(得分:3)
自应用程序。有一个GUI(通过Swing标签判断),使用Java Web Start:
进行部署Java Web Start(JWS)是Oracle Corporation用于直接从网络或Internet链接启动富客户端(Swing,AWT,SWT)桌面应用程序的技术。它为支持Java的平台提供“一键式”安装。
JWS提供了许多吸引人的功能,包括但不限于启动画面,桌面集成,文件关联,自动更新(包括延迟下载和程序化控制更新),本地分区和&按平台,体系结构或Java版本下载其他资源,运行时环境配置(最低J2SE版本,运行时选项,RAM等),使用扩展轻松管理公共资源..
答案 1 :(得分:3)
可能有几种方法。既然你说应用程序是跨平台的,那么使用Java进行更新是明智的。
您可以创建一个小jar文件来处理更新过程。它可能是初始应用程序的一部分(假设它不会更新)或者它可能是更新包的一部分(然后您也可以更新它)。
因此,您的应用程序下载zip,将其解压缩到临时目录并启动更新程序,然后退出。更新程序将旧罐子复制到旧罐子上。
然而,最好不要重新发明轮子。考虑使用JWS:它提供了更多功能,并且需要更少的工作量来实现。必须有良好的理由才能拒绝JWS。你应该通过解释使用JWS的好处来说服你的老板。