應用的便攜性對于產品而言很重要。從外觀看,如果開發好的應用能夠打包,通過安裝程序指導用戶對開發產品的安裝和配置,將大大提升應用客戶的認同感。從公司本身看,如果能夠較好的貫徹這種思想,無非對于實施產品化行為奠定一個良好的基礎。大家試想,這樣兩方面將使得產品的部署更加快捷、有效。其中最為重要的一點就是,很多的產品經驗都能夠較好地得到積累和沉淀。
一,????工具概述
InstallAnywhere?由Zero?G公司(http://www.zerog.com?)開發。Zero?G公司在多平臺軟件部署和維護領域是佼佼者。其代表產品有InstallAnywhere和PowerUpdate。其使用的簡單、高效,并在提供跨平臺支持的同時支持29種語言(包括簡體中文)贏得了很多客戶的青睞。其主界面如圖1所示。
?

圖1 主界面
用戶安裝完InstallAnywhere?后,可以通過啟動菜單,或者主界面左下角的“Show?Help”按鈕找到“InstallAnywhere?5.5?Enterprise?User?Guide”,如圖2所示。
?

?
圖2 InstallAnywhere提供的用戶指南
????因為InstallAnywhere涉及的面也很廣(其功能強大、上手簡單),在這里主要是結合本人在參與使用InstallAnywhere開發安裝程序過程中遇到的一些問題、解決辦法以及相關開發技巧和大家分享(主要面對初學者,或者說沒有使用過InstallAnywhere的新手)。具體的各個細節還望各位參考InstallAnywhere提供的用戶指南。
二,????非Java應用的部署
由于基于InstallAnywhere的安裝程序需要JVM的支持。因此,如果目標部署環境沒有提供JVM,則對于非Java應用的部署安裝程序制作需要自己提供JVM,如圖3所示。
??

圖3?安裝程序Bundle?VM(選中“With?VM”對應的復選框)
????其他的步驟和Java應用的部署差不多。本文這里將Java應用分為兩種,J2SE應用和J2EE應用。主要是因為J2EE應用還會涉及到應用服務器,其安裝制作會比較復雜。
三,????J2SE應用的部署
如果程序本身是基于J2SE的應用,則我們可以考慮將InstallAnywhere提供的JVM就作為J2SE應用運行所需的JVM。這其中有一點需要讀者注意,即JVM的安裝文件夾位置和名稱。通過圖4可以訂制您的特定需求。
??

圖4?定制JVM的安裝位置和名稱
四,????J2EE應用的部署
對于J2EE應用的安裝部署就會比較復雜。其中,涉及到與JVM、數據庫系統、J2EE應用服務器以及J2EE應用本身的交互。
這一部分內容,我后面會分專題具體給出闡述,因為內容比較多。
五,????使用Tips
5.1?JVM的選用
為了提供中文的安裝向導,InstallAnywhere默認提供的VM并沒有提供國際化支持,比如中文支持,這種情況下開發者必須去:http://www.zerog.com/downloads_02c.html 下載提供國際化支持的VM,或者自己制作(具體細節,請參考InstallAnywhere?5.5.?Enterprise?User?Guide)。
??

圖5?InstallAnywhere安裝的VM?Packs
5.2?Customer?Code的開發
很多時候,我們需要開發自己的向導面板。具體步驟如下:
第一,選擇一個開發工具,比如JBuilder、Eclipse、JCreator等等。
第二,將IAClasses.zip加到classpath中。
第三,如果還使用到其他的class?lib,也根據步驟2加入到classpath中。
第四,開發具體的Customer?Code。
第五,借助于InstallAnywhere將自己開發的Customer?Code加入到目標工程中,編譯、測試Customer?Code。
5.3?調試信息的輸出
在使用InstallAnywhere過程中,如果需要查看安裝程序做了哪些工作,比如,加載了哪些類、使用的JVM的版本和位置、調試信息以及錯誤信息等內容。在這種情況下,就需要借助于InstallAnywhere提供的功能。如圖6所示,開發者可以將調試信息輸出到文件或者控制臺。比如,將錯誤信息和其他調試信息輸出到控制臺,只需要填入“console”。
??

圖6?調試信息的輸出
這樣一來,在安裝編譯好的安裝程序后,將同時彈出一個控制臺,供用戶查看安裝日志。如果安裝日志很多,可以調整控制臺的“屏幕緩沖區大小”,比如調整圖7中屏幕緩沖區大小的高度(最大可以為,5999),這樣使得先前的日志信息不至于被沖掉。
??

圖7?調整屏幕緩沖區大小
5.4?中文亂碼的處理
由于InstallAnywhere處理本地化方面不是很完善。有時候,開發人員的誤操作不小心引入很多中文亂碼。在這種情況下,需要調整本地文件,比如處理中文的“custom_zh_CN”文件。具體辦法如下:
首先,關掉InstallAnywhere,然后找到“custom_zh_CN”文件。
其次,然找到亂碼位置。
第三,借助于InstallAnywhere或者其他工具,將相應的中文Unicode替換原來的亂碼。
最后,重新打開InstallAnywhere,編譯、安裝打包程序,看看是否正常。
其中,在這些過程中有時候需要手工調整“custom_zh_CN”文件中一些內容的順序,這種情況下,一定要保證“custom_en”和“custom_zh_CN”文件所含的英文項一致。
六,????結論
通過本文內容,您對InstallAnywhere應該有了一些了解。使用InstallAnywhere幾乎可以完成任何支持JVM的安裝程序。從非JAVA應用、J2SE應用到J2EE應用的安裝制作都可以很好的完成。這其中,在很大程度上都是借助了Java的跨平臺優勢才得以實現。