2011-03-31 58 views
3

我正在尋找一個非webstart/jnlp解決方案。這是從服務器更新應用程序的最佳方式?

我想添加到我的應用程序的更新功能,該功能檢查ftp或http服務器並下載最新版本(如果有更新的版本)替換已更改的庫。

我該怎麼做?我想實現像JDownloaders更新一樣的東西。

謝謝

回答

4

看起來你剛剛描述瞭如何做到這一點。添加檢查FTP或HTTP服務器並下載最新版本的更新功能。

請記住,您無法下載和覆蓋正在使用的文件。所以,你必須從我坐在哪裏設計的兩個選項:

  1. 當你啓動應用程序,複製所有jar文件和庫文件,以某種形式的/ temp文件夾中運行它們之前。然後,當您下載更新時,覆蓋原始位置中的文件。下一次應用程序啓動時,它將使用新文件。

  2. 當您啓動應用程序時,首先啓動更新程序。讓它連接到服務器並比較所有文件版本。它將能夠覆蓋任何應用程序文件,因爲它不使用它們。它只使用更新器jar。一旦完成並且所有內容都已更新,請使用實際應用程序從更新程序開始一個新進程。您還需要添加一些代碼才能更新updater jar。要麼使主應用程序能夠更新更新程序,要麼使用第一種技術並從updater jar的副本運行更新程序。

請記住,當您下載文件時,您應該將它們下載到臨時位置,然後在完成後將它們移動到正確的位置。這將確保您永遠不會將應用程序置於「半下載」狀態。

除此之外,讓它工作將涉及到很多測試。祝你好運!

相關問題