2011-01-30 91 views
9

我開發了一個Java Swing應用程序,它將安裝在不同位置的多個客戶端上。該應用程序將由我手動安裝。但我想通過互聯網自動更新應用程序,無需用戶交互,類似於Google Chrome的更新方式。自動更新Java Swing應用程序有哪些替代方法?

在Java Swing中實現此自動更新功能的替代方法是什麼?有沒有什麼好的第三方框架可以解決這個問題?或者是否有我可以使用的任何Java內置功能?

+2

[如何在Java中編寫自我更新程序?](http://stackoverflow.com/questions/4706153/how-to-write-a-self-updating-program-in-java) – Bozho 2011-01-30 18:49:20

+0

@Bozho:太糟糕了,人們不會正確地標記他們的問題。我搜索了「揮杆更新」,但沒有像這樣的問題。然後我搜索「[擺動] [更新]」和「[擺動] [自動更新]」,只發現了一個問題,但這是關於一個標籤。因此,如果人們可以重新提出問題,這樣他們就不必在新問題上投票結束了。 – Jonas 2011-01-30 19:09:14

回答

9

使用Java Web Start部署應用程序,您可以輕鬆地將其自動更新。

3

那麼,你有java web開始。不幸的是,它在某些情況下可能會出現問題。

還有jExpress,一個商業替代;這就是我們公司使用的,結果非常好。

編輯:

一個顯示塞我碰上了,在JWS到hibernate.jar文件文件有關。不知道確切的原因,但下載抱怨簽名時出錯,儘管該文件已正確簽名。以下是2010年7月某人發佈的bug report;顯然它可能已被固定爲1.7版本。大!

其他怨恨我與JWS是普通的用戶體驗:

  • 用戶需要下載一個.jnpl文件,這是不是一個真正的可執行文件。如果用戶搞砸了文件關聯,運氣不好;你最好希望他聽說「javaws」:)

  • 通過JWS(或其創建的快捷方式)運行該程序後,出現一個java啓動畫面,然後(有時)非常大的暫停,直到程序實際上開始。大多數用戶可能會認爲沒有發生或程序崩潰。

5

只是想補充說Java Web Start還允許你設置系統和用戶緩存(例如,如果一個桌面被許多用戶共享,你只能將應用下載到系統緩存一次而不是每個用戶)。

此外,如果您在網絡驅動器或共享捲上共享某個位置的系統緩存,則該位置的所有桌面只能進行一次下載。