亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何編寫可以在運行時進行自我更新的Java應用程序?

如何編寫可以在運行時進行自我更新的Java應用程序?

海綿寶寶撒 2019-10-06 11:10:52
我想實現一個Java應用程序(服務器應用程序),該應用程序可以從給定的URL下載新版本(.jar文件),然后在運行時進行自身更新。最好的方法是什么,有可能嗎?我猜該應用程序可以下載一個新的.jar文件并啟動它。但是我應該如何進行切換,例如知道何時啟動新應用程序然后退出。還是有更好的方法來做到這一點?
查看完整描述

3 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

我目前正在開發JAVA Linux守護程序,也需要實現自動更新機制。我想將應用程序限制在一個jar文件中,并提出了一個簡單的解決方案:

將更新程序應用程序打包在更新本身中。

應用程序:當應用程序檢測到較新版本時,它將執行以下操作:

  1. 下載更新(Zipfile)

  2. 提取Application 和ApplicationUpdater(均在zip文件中)

  3. 運行更新程序

ApplicationUpdater:運行更新程序時,它將執行以下操作:

  1. 停止應用程序(在本例中為通過init.d的守護程序)

  2. 復制下載的jar文件以覆蓋當前的應用程序

  3. 啟動應用程序

  4. 清理。

希望它可以幫助某人。


查看完整回答
反對 回復 2019-10-06
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

我編寫了一個Java應用程序,該程序可以在運行時加載插件并立即開始使用它們,這受到jEdit中類似機制的啟發。jEdit是開源的,因此您可以選擇查看其工作方式。

該解決方案使用自定義的ClassLoader從jar中加載文件。加載它們后,您可以從新的jar中調用某些方法作為其main方法。然后,棘手的部分是確保您擺脫對舊代碼的所有引用,以便可以對其進行垃圾回收。我在這方面還不是專家,我已經做到了,但這并不容易。


查看完整回答
反對 回復 2019-10-06
  • 3 回答
  • 0 關注
  • 758 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號