2012-05-13 42 views
0

我正在編寫一個Java服務器端應用程序,我想提供內置的功能,以便蘋果可以自行更新。我希望應用程序輪詢服務器,如果有新版本可以更新,那麼它應該讓用戶激活更新命令。更新自身的Java應用程序?

我想下面這個更新過程中發生:

  • 下載新的JAR文件與新版本
  • 刷新該JAR的內容到主應用程序
  • 卸載任何老班從舊JAR

我希望這種情況發生,理想情況下,沒有在此過程中的應用程序PID更改。

我相信詹金斯確實這樣做,但我一直無法弄清楚他們是如何做到的。

+0

不是真的,Java Web Start在此實例中不是正確的解決方案。 –

回答

0

卸載/加載技術是部署到應用程序容器中的Java EE應用程序的標準配置,您可以免費獲得該技術。

唯一的問題是如何以編程方式管理更新。它必然是特定於容器的。如果您沒有部署到Java EE容器,那麼您將不得不深入瞭解自定義類加載器的血腥細節。但這只是一個開始,因爲除了卸載課程之外還有更多的方法。您的應用程序可能已經啓動了需要優雅地關閉的線程,例如,或者打開了套接字等。

+0

謝謝你的回答。目前,該應用程序包含一個Embedded Jetty,它通過應用程序的主要方法啓動。 –