2010-02-11 85 views
11

我最近發佈了一個跨平臺Java應用程序。爲了發佈,我們爲Windows創建了一個NSIS安裝程序,並使用了DMG for Mac(具有JarBundled .app文件)。我們還計劃創建Linux RPM,DEB和tarball。如何爲Java程序發佈補丁

總共有5種不同的分配方法可供選擇。

我的問題是:什麼是修補在許多平臺上運行的Java程序的最佳跨平臺方法?

回答

4

你有沒有考慮過簡單地發佈整個應用程序的新版本,而不是補丁?既然您已經投入了各種平臺的安裝人員的時間,似乎可以避免爲每個平臺提供第二種方法的麻煩。除非您的應用程序非常龐大,否則我想不出有什麼缺點,因爲現在帶寬非常便宜。

+0

我們希望避免的主要原因是我們不希望將安裝程序分發給所有人,因爲保護我們免受盜版的唯一方法是使用簡單的許可證密鑰驗證程序。另一方面,修補程序可以很容易地從我們的網站上發佈,因爲沒有主程序就沒有用處。 – cdmckay 2010-02-11 22:30:40

+0

我同意 - 只是建立新版本的安裝程序,所以用戶不處理不同的安裝方法。 – 2010-02-11 22:34:37

+0

你如何分配你的原始應用程序? – 2010-02-11 22:35:30

4

我會說,一個Ant腳本是一個合理的跨平臺的方式來執行任務。如果你的補丁邏輯包括移動一些文件,更新jar,處理配置等,那麼Ant可能適合你。您可以使用AntInstaller作爲GUI。

+0

我想你誤會了。我正在尋找一種將修補程序發送給用戶的方法。使用這個應用程序的用戶將是非技術性的,所以我們可以期望他們能夠雙擊EXE或DMG文件。編輯:NM,它看起來像你理解:) – cdmckay 2010-02-11 19:11:23

+0

來想想看,發佈補丁就像發佈一個完整的安裝包。 關於最終用戶的一個很好的安裝包裝,在我的項目中,所有的安裝/補丁邏輯都是一個Ant腳本,我們使用AntInstaller加上特定於平臺的啓動腳本(.bat/.sh)來引導AntInstaller。這可能不是最好的解決方案(.exe會更好),但 - 只是我的2美分。 – 2010-02-11 19:30:20

+0

我很感激關於downvote的評論。 – 2010-02-11 19:47:43

4

這可能不是您的選擇,但我認爲最好的方法是使用Java Web Start

它提供獨立於平臺的機制來自動下載修補軟件的版本。

+0

我對這個答案感到困惑,jws如何幫助應用補丁?你能詳細說明一下嗎? – kgrad 2010-02-11 19:18:33

+0

@Peter Lang:我正在爲一家銷售商業軟件的公司工作。除非您願意犧牲潛在的OS X客戶中的大部分,否則您最不想要的就是使用Java Web Start。首先,Java在OS X用戶中的代表性仍然非常糟糕,而您卻將它們隱藏起來,因爲它是一個Java應用程序。那麼JWS當然會面臨巨大的問題。 – SyntaxT3rr0r 2010-02-11 19:42:41

+0

@WizardOfOdds,在OS X下,Java對我們來說工作得很好。您能否詳細說明在OS X下使用Java的體驗,因爲它很糟糕?發行版可以包含JNLP應用程序的初始播種,因此可以避免大的下載。 – 2010-02-11 22:23:05