【发布时间】:2011-03-31 10:20:50
【问题描述】:
我正在寻找非 webstart/jnlp 解决方案。
我想在我的应用程序中添加一个更新功能,该功能检查 ftp 或 http 服务器并下载最新版本(如果有更新的版本)替换已更改的库。
我该怎么做?我想实现 JDownloaders 更新之类的东西。
谢谢
【问题讨论】:
标签: java auto-update
我正在寻找非 webstart/jnlp 解决方案。
我想在我的应用程序中添加一个更新功能,该功能检查 ftp 或 http 服务器并下载最新版本(如果有更新的版本)替换已更改的库。
我该怎么做?我想实现 JDownloaders 更新之类的东西。
谢谢
【问题讨论】:
标签: java auto-update
看起来您刚刚描述了具体的操作方法。添加检查 FTP 或 HTTP 服务器并下载最新版本的更新功能。
请记住,您不能下载和覆盖正在使用的文件。因此,对于我所坐的设计,您有两种选择:
启动应用程序时,将所有 jar 和库文件复制到某种 /temp 文件夹,然后再运行它们。然后,当您下载更新时,覆盖原始位置的文件。下次启动应用程序时,它将使用新文件。
启动应用程序时,首先启动更新程序。让它连接到服务器并比较所有文件版本。它将能够覆盖任何应用程序文件,因为它不使用它们。它仅使用更新程序 jar。完成此操作并更新所有内容后,请使用实际应用程序从更新程序启动一个新进程。您还需要输入一些代码才能更新更新程序 jar。要么让主应用程序能够更新更新程序,要么使用第一种技术并从更新程序 jar 的副本运行更新程序。
请记住,当您下载文件时,您应该将它们下载到一个临时位置,然后在完成后将它们移动到正确的位置。这将确保您永远不会让您的应用程序处于“半下载”状态。
除此之外,要让它发挥作用还需要进行大量测试。祝你好运!
【讨论】:
看看http://code.google.com/p/getdown/
根据 stackoverflow 上的this 问题,它似乎是网络启动的可行替代方案(至少值得一看)。
【讨论】: