2011-03-31 56 views
3

我正在寻找一个非webstart/jnlp解决方案。这是从服务器更新应用程序的最佳方式?

我想添加到我的应用程序的更新功能,该功能检查ftp或http服务器并下载最新版本(如果有更新的版本)替换已更改的库。

我该怎么做?我想实现像JDownloaders更新一样的东西。

谢谢

回答

4

看起来你刚刚描述了如何做到这一点。添加检查FTP或HTTP服务器并下载最新版本的更新功能。

请记住,您无法下载和覆盖正在使用的文件。所以,你必须从我坐在哪里设计的两个选项:

  1. 当你启动应用程序,复制所有jar文件和库文件,以某种形式的/ temp文件夹中运行它们之前。然后,当您下载更新时,覆盖原始位置中的文件。下一次应用程序启动时,它将使用新文件。

  2. 当您启动应用程序时,首先启动更新程序。让它连接到服务器并比较所有文件版本。它将能够覆盖任何应用程序文件,因为它不使用它们。它只使用更新器jar。一旦完成并且所有内容都已更新,请使用实际应用程序从更新程序开始一个新进程。您还需要添加一些代码才能更新updater jar。要么使主应用程序能够更新更新程序,要么使用第一种技术并从updater jar的副本运行更新程序。

请记住,当您下载文件时,您应该将它们下载到临时位置,然后在完成后将它们移动到正确的位置。这将确保您永远不会将应用程序置于“半下载”状态。

除此之外,让它工作将涉及到很多测试。祝你好运!

相关问题