2010-07-08 82 views

回答

3

毫無疑問,我建議您使用Java Web Start,因爲它允許您輕鬆控制所使用的版本(以及目前爲止更容易使用的更新機制)。

+0

+1爲標準Web Start解決方案 – 2010-07-08 16:14:57

3

取決於你需要什麼。

我們發現使用One-JAR + JSmooth可以提供非常好的用戶體驗,因爲它允許我們分發一個可以放在用戶系統任何位置的EXE文件,而不是安裝二進制文件,需要安裝和卸載等。等等。JSMooth檢查是否存在適當的Java運行時,並且如果沒有發現,則重定向到官方下載站點。

One-jar的原因是,你通常需要使用最好有獨立的庫jar,但JSmooth只允許一個jar文件。

此外,One-Jar SDK和JSmooth可以在不綁定Windows的情況下編寫腳本,因此我們可以在運行在Linux上的Hudson引擎上構建新版本。

1

在過去,我使用了像launchForJ這樣的java安裝程序包。但是,許多這些軟件包使用Java,因此您可能需要使用本地windows代碼編寫的批處理或簡單可執行文件,以快速檢查Java是否已安裝,然後運行安裝程序。

由於Java在安裝過程中使用系統變量,因此應該能夠以這種方式檢查您需要的版本(或更高版本)是否存在。

0

標準的方法是使用Java Web Start

使用Java Web Start技術,獨立的Java軟件應用程序可以通過單擊網絡進行部署。 Java Web Start的確保應用程序的最新版本將被部署,以及正確版本的Java運行時環境(JRE)的

Maven有一個Webstart Maven Plugin幫助構建可通過Web部署的應用程序軟件包開始。

另一種解決方案是使用跨平臺安裝程序生成器來生成安裝程序。我個人很喜歡IzPack(我認爲這JSmooth是非常相似的,但我有一個的IzPack更多的經驗),如果你是專門針對Windows平臺上,你可以使用的IzPack來Build [a] Native Windows Installers with IzPack Native Launcher

的問題仍然的IzPack出現當 目標系統沒有安裝JRE 。用戶首先需要安裝 ,然後運行IzPack 安裝程序。這與Linux或BSD用戶 不存在問題,因爲他們通常是熟練的,並且他們知道如何通過手動或使用包裝 系統(RPM,DEB,ebuilds,端口, ...)來執行此操作。同樣,一個Mac OS X用戶 沒有太大的問題,因爲它是 可用於操作系統。 但是在Windows平臺上,情況更復雜 ,因爲 必須安裝JRE。更糟糕的是, 幾個實例可以安裝在 一個有時凌亂的情況。

IzPack Native Launcher試圖通過 來解決這個問題。它是一個C++原生 應用程序,可在 下獲得非常寬鬆的MIT許可證,而 可將wxWidgets用於GUI。它是 因此是跨平臺的(對於 歷史學家:它最早是在 上開發的一個FreeBSD框),但大多數人會在 上需要它。它使用一個簡單的 配置文件,並將首先檢查一個JRE的 。如果可以找到, 它會彈出一個對話框,讓下面的 選項之間的 用戶選擇:

  • 手動從互聯網上指定一個JRE位置
  • 下載一個
  • 安裝一個這是由包裝商提供的(如果有的話)。

IzPack還提供Maven Plugin。值得支票。

+0

即使對Java 6進行了大修,Java WebStart仍然不知道如何處理更新,如「有新版本,在後臺下載?」正常。 – 2010-07-09 13:05:07

+0

@Thorbjørn事實上,不是JWS如何工作,你必須要求用戶重新啓動他們的應用程序。 – 2010-07-09 13:21:30

+0

,然後他們必須下載完整的升級之後才能繼續工作......感嘆.. – 2010-07-10 21:27:55

相關問題