哪个是从服务器更新应用程序的最佳方法?

时间:2011-03-31 10:20:51

标签: java auto-update

我正在寻找非webstart / jnlp解决方案。

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

我该怎么做?我想实现类似JDownloaders更新的东西。

由于

2 个答案:

答案 0 :(得分:4)

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

请记住,您无法下载和覆盖正在使用的文件。因此,我可以从两个位置选择设计:

  1. 启动应用程序时,请先将所有jar文件和库文件复制到某种/ temp文件夹中,然后再运行它们。然后,下载更新时,覆盖原始位置的文件。下次启动应用程序时,它将使用新文件。

  2. 启动应用程序时,首先启动更新程序。让它连接到服务器并比较所有文件版本。它将能够覆盖任何应用程序文件,因为它不使用它们。它只使用更新程序jar。完成此操作后,所有内容都已更新,然后使用实际应用程序从更新程序启动新进程。您还需要输入一些代码才能更新更新程序jar。使主应用程序能够更新更新程序,或使用第一种技术并从更新程序jar的副本运行更新程序。

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

    除此之外,让它发挥作用将是大量的测试。祝你好运!

答案 1 :(得分:2)

查看http://code.google.com/p/getdown/

根据关于stackoverflow的this问题,它似乎是Web启动的可行替代方案(至少值得一看)。