2012-02-23 183 views
0

對於我來說,這仍然是一段時間,但對於我的項目實現類,我們必須創建一個程序然後分發它。我已經用Java寫了一個應用程序,並且根據我在前一課(Project Design)中所做的規範,我的應用程序需要與平臺無關。如何爲Java應用程序創建安裝程序?

對於mac和linux用戶可以從終端運行jar文件,但對於Windows,我希望將應用程序安裝到用戶選擇的路徑(默認:C:\ Program Files(x86)\ NameOfApplication) ,創建一個桌面快捷方式(如果用戶希望擁有一個),請在開始菜單下安裝(如果用戶需要),然後顯示在添加/刪除程序列表中。

有沒有簡單的方法來做到這一點?

如果我決定爲mac和linux創建安裝程序,難道會更困難嗎?

在此先感謝。

+4

之前已經討論了很多次......在請求之前請做一些搜索 – 2012-02-23 14:01:07

+1

......太多......重複......無法計算...... – epoch 2012-02-23 14:19:08

+0

可能的重複[如何使安裝程序多平臺的Java桌面應用程序?](http://stackoverflow.com/questions/979572/how-to-make-installer-of-java-desktop-application-for-multi-platform) – Caleb 2012-02-23 23:06:10

回答

0

Install4j做你想做的,雖然你必須付出代價。就我個人而言,我不知道有任何替代品。您也可以爲Linux和Mac OS製作安裝程序。

2

即使對於Java應用程序,也可以使用NSIS創建安裝程序。

您也可以考慮通過Java Web Start分發您的應用程序。

+1

似乎Java Web Start作爲分發Java應用程序的預期路線。 – arbn 2012-02-23 14:04:38

0

你可以做到大部分使用標準JNLP的:

http://docs.oracle.com/javase/1.4.2/docs/guide/jws/developersguide/syntax.html

你讓一個JNLP文件需要從一些地方的可執行的JAR(或遠程)位置併爲其創建一個桌面圖標(您的選擇)。唯一不同的是,實際的JAR將被放置在JDK的jar緩存目錄中(不在您選擇的目錄中 - 我認爲用戶不會太在意)。

這樣做的一個巨大優勢是,如果您創建一個從遠程位置安裝jar的JNLP,則可以遠程將新版本的jar上傳到該位置,並且當用戶下一次在本地訪問jar時,最新版本將被下載並放入本地緩存中。

另外我建議你使用一個聰明的「胖JAR」生成器,它將可執行jar中的所有依賴關係包打包。 Eclipse IDE有一種以這種格式導出項目的方法(並且還添加了必要的類加載器,以便在fat jar中可以正常工作)。

1

有java的開源安裝程序生成器。我以前從未使用過。這裏是links

一個很好的資源,我建議使用Java Web Start的

它有幾個優點。

  1. 適用於所有主流桌面平臺
  2. 所有啓用JWS的平臺
  3. 代碼簽名和沙盒
  4. 版本和增量更新單分佈
  5. JRE和可選包
  6. 的自動安裝

它有一個主要的缺點。如果JWS,JRE,和/或可選的 包不存在系統

看一看上

  1. 需要連接Internet herehere

0

如果你的目標操作系統是Windows我強烈推薦高級安裝程序。它非常易於使用,並且可以讓您使用特定的目標Java VM和一些有用的Windows功能(即使在免費版本中)創建自己的本地微軟安裝程序(.msi)。請注意,您還可以在包中加入一個專用的jre。

http://www.advancedinstaller.com/top-freeware-features.html

如果你想要一個「包一個隨處部署」的解決方案,然後是的IzPack要走的路,平臺獨立的,自由和開放源碼。

http://izpack.org/

根據您的項目Java Web Start的可能是一個非常好的選擇的複雜性,這是非常簡單的配置和維護,但它依賴於瀏覽器的Java插件,相信我......大多數用戶DON」 T喜歡每次啓動應用程序時都會對證書和風險提出警告。

相關問題