从服务器更新应用程序的最佳方式是什么?

3

我希望找到一种非webstart/jnlp的解决方案。

我想在我的应用程序中添加一个更新功能,它可以检查ftp或http服务器并下载最新的版本(如果有更新的话),并替换已更改的库。

我该如何做呢?我想实现类似JDownloaders更新的功能。

谢谢。

2个回答

4
看起来你已经完美地描述了如何实现它。添加一个更新功能,检查FTP或HTTP服务器并下载最新版本即可。
请记住,你不能覆盖正在使用的文件。所以从我的角度来看,你有两个设计选项:
1. 当你启动应用程序时,在运行它们之前,将所有的jar和库文件复制到某个/temp文件夹中。然后,当你下载更新时,覆盖原始位置中的文件。下次启动应用程序时,它将使用新的文件。 2. 当你启动应用程序时,首先启动一个更新程序。让它连接到服务器并比较所有文件的版本。它将能够覆盖任何应用程序文件,因为它不使用它们。它只使用更新程序jar。一旦完成所有更新,并且一切都已更新完毕,然后从更新程序中启动一个新进程,再打开实际的应用程序。你还需要加入一些代码来更新更新程序jar。要么使主应用程序能够更新更新程序,要么使用第一种技术并从更新程序jar的副本中运行更新程序。
请记住,当你下载文件时,应该将它们下载到一个临时位置,然后在下载完成后将它们移动到正确的位置。这将确保你永远不会让你的应用程序处于“半下载”状态。
除此之外,让这个工作起来需要进行大量的测试。祝你好运!

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接