有时候我们的程序需要连接服务器检测新版本,如果发现新版本则需要自动下载升级。这种需求在Linux下还好说,但在windows下如何替换正在运行的程序文件呢?
当然有办法,步骤如下:
1. 将我们的程序使用《
Java程序代理器》打包发布(这里我们需要用到它的高级版,而不是免费版,
点击下载)
2. 程序正常运行,连接服务器,检查新版本
3. 当发现新版本时,直接从服务器下载新版本文件(一般是jar包)到程序所在文件夹,并添加“.update”为文件扩展名
4. 提示用户重启
这样一来便完成了在线升级的过程。
可能上面的步骤讲的比较抽象,那么我们来举个例子:
假设我们的程序打包成了“program.jar”,运行的时候在服务器上发现了新版本,那么我们需要下载服务器上的新版的“program.jar”到本地,并命名为“program.jar.update”,之后提示用户重启程序即可。
那如果是我们的程序锁依赖的第三方jar包需要升级呢?同理,将新版本的jar下载到和旧版jar相同的目录,命名为“xxx.update”即可。
当然,程序有可能升级失败,也有可能因为其他原因需要回滚版本,怎么做呢?
《Java程序代理器》在升级的时候,已经将旧版本程序文件重命名为“xxx.bak”。接下来要做什么就很明显了:将“xxx.bak”重命名为“xxx.update”,并提示用户重启程序即可。