2011-09-23 28 views
5

我們有一個Web應用程序,我們需要爲我們的客戶更容易部署。 的新鮮當前工作流安裝:根據我的要求,我應該使用NSIS還是jprofiler/install4j

  • 確保有機器上的JRE(32位或64位)
  • 安裝Tomcat(32位或64位)
  • 創建Oracle或SQL Server數據庫(我們爲此提供SQL腳本)
  • 在我們的設置表中寫入一些值,例如主機名。 (可以得到用戶驗證這些,但不希望用戶必須點擊它們。
  • 創建連接屬性文件(我們提供了一個小型JAR程序,以幫助這一點),這將在Tomcat下坐。
  • 我們有兩個戰文件,我們實際的Web應用程序。這可以在兩臺機器進行分割,但現在,讓我們假設他們都得到在Tomcat下傾倒。
  • 啓動Tomcat,使其展開的戰爭

這是一個對我們的用戶來說是一個繁瑣的過程 我想將它封裝到一個安裝程序中,並且一直在NSIS中進行這項工作,它似乎有一個大型通信ty,但後來也偶然發現了install4j,儘管它似乎不太爲人所知,但它更適用於基於Java的應用程序。

只是想從更有經驗的用戶那裏得到一些關於平臺最佳選擇的反饋。

我不想進入中途,然後意識到我選擇了錯誤的安裝程序平臺。

回答

11

聲明:我公司開發install4j。

首先,install4j是一個商業工具,所以這對NSIS來說是一個相當大的差異。其他主要區別如下:

  • install4j是一個適用於Windows,Mac OS X和所有POSIX兼容Linux和Unix平臺的多平臺安裝程序生成器。
  • install4j的主要重點是安裝基於Java的應用程序,例如它處理啓動器和服務的創建,並提供多種捆綁JRE的策略。您需要的Java應用程序的許多功能都可以使用。
  • install4j提供了專注於易用性的自己的IDE
  • 腳本是在Java中完成的。 IDE提供了一個內置編輯器,其中包含代碼完成和錯誤分析。動作,屏幕和表單組件具有廣泛的「腳本屬性」,允許您自定義安裝程序的行爲。

對於install4j,我可以解決您單要求:

確保有一個JRE機(32或64位)

在媒體嚮導中選擇一個JRE束。如果您選擇「動態綁定」選項,只有在找不到合適的JRE時纔會下載該選項。

enter image description here

安裝Tomcat(32位或64位)

我會建議直接在現有的Tomcat的安裝根目錄添加到您分發樹。

至於服務,您可以使用Tomcat發行版中的Tomcat服務啓動程序或在install4j中創建服務啓動程序。在這兩種情況下,您都可以使用「安裝服務」操作來安裝服務。

生成的服務的優點是更新安裝程序知道它們正在運行並在安裝任何新文件之前自動關閉它們。

enter image description here

爲了運行這些腳本在Oracle中創建一個數據庫或SQL Server(我們爲此提供SQL腳本)

使用「運行可執行文件或批處理文件」的行動。

將一些值寫入我們的設置表中,如主機名。 (可以得到用戶驗證這些, 但不希望用戶必須點擊它們。

任何類型的用戶互動與配置的形式完成的。一對夫婦文本字段表格組件,您可以查詢您的設置。

這也適用於透明的控制檯安裝程序並自動生成的響應文件將允許您以無人蔘與模式基於GUI的安裝程序的一次執行自動安裝。

enter image description here

創建一個連接屬性文件(我們提供了一個微型JAR應用程序來幫助完成此操作), 將位於Tomcat下。

如果你已經有了一個JAR文件,其這樣做,只是將它加入下Installer->自定義代碼&資源,並添加一個「運行腳本」行動,您的安裝程序使用的類的JAR文件。

從已保存上一步變量形式組件的任何用戶輸入可以調用像

context.getVariable("greetingOption") 
在「運行腳本」操作(或install4j任何其他腳本)的腳本屬性

訪問。

我們有兩個WAR文件用於我們的實際Web應用程序。這些可以分成兩個 機器,但現在,讓我們假設他們都被轉儲到Tomcat下。

如果您只是將Tomcat目錄結構添加到分發樹中,則可以預先部署這些WAR文件。否則,您可以使用「複製文件」操作將WAR文件放在任何地方。

啓動Tomcat,使其展開的戰爭

這與「啓動服務」的動作來完成。

相關問題