應用的便攜性對于產(chǎn)品而言很重要。從外觀(guān)看,如果開(kāi)發(fā)好的應用能夠打包,通過(guò)安裝程序指導用戶(hù)對開(kāi)發(fā)產(chǎn)品的安裝和配置,將大大提升應用客戶(hù)的認同感。從公司本身看,如果能夠較好的貫徹這種思想,無(wú)非對于實(shí)施產(chǎn)品化行為奠定一個(gè)良好的基礎。大家試想,這樣兩方面將使得產(chǎn)品的部署更加快捷、有效。其中最為重要的一點(diǎn)就是,很多的產(chǎn)品經(jīng)驗都能夠較好地得到積累和沉淀。
一, 工具概述
InstallAnywhere 由Zero G公司(http://www.zerog.com )開(kāi)發(fā)。Zero G公司在多平臺軟件部署和維護領(lǐng)域是佼佼者。其代表產(chǎn)品有InstallAnywhere和PowerUpdate。其使用的簡(jiǎn)單、高效,并在提供跨平臺支持的同時(shí)支持29種語(yǔ)言(包括簡(jiǎn)體中文)贏(yíng)得了很多客戶(hù)的青睞。其主界面如圖1所示。
圖1 主界面
用戶(hù)安裝完InstallAnywhere 后,可以通過(guò)啟動(dòng)菜單,或者主界面左下角的“Show Help”按鈕找到“InstallAnywhere 5.5 Enterprise User Guide”,如圖2所示。
圖2 InstallAnywhere提供的用戶(hù)指南
因為InstallAnywhere涉及的面也很廣(其功能強大、上手簡(jiǎn)單),在這里主要是結合本人在參與使用InstallAnywhere開(kāi)發(fā)安裝程序過(guò)程中遇到的一些問(wèn)題、解決辦法以及相關(guān)開(kāi)發(fā)技巧和大家分享(主要面對初學(xué)者,或者說(shuō)沒(méi)有使用過(guò)InstallAnywhere的新手)。具體的各個(gè)細節還望各位參考InstallAnywhere提供的用戶(hù)指南。
二, 非Java應用的部署
由于基于InstallAnywhere的安裝程序需要JVM的支持。因此,如果目標部署環(huán)境沒(méi)有提供JVM,則對于非Java應用的部署安裝程序制作需要自己提供JVM,如圖3所示。
圖3 安裝程序Bundle VM(選中“With VM”對應的復選框)
其他的步驟和Java應用的部署差不多。本文這里將Java應用分為兩種,J2SE應用和J2EE應用。主要是因為J2EE應用還會(huì )涉及到應用服務(wù)器,其安裝制作會(huì )比較復雜。
三, J2SE應用的部署
如果程序本身是基于J2SE的應用,則我們可以考慮將InstallAnywhere提供的JVM就作為J2SE應用運行所需的JVM。這其中有一點(diǎn)需要讀者注意,即JVM的安裝文件夾位置和名稱(chēng)。通過(guò)圖4可以訂制您的特定需求。
圖4 定制JVM的安裝位置和名稱(chēng)
四, J2EE應用的部署
對于J2EE應用的安裝部署就會(huì )比較復雜。其中,涉及到與JVM、數據庫系統、J2EE應用服務(wù)器以及J2EE應用本身的交互。
這一部分內容,我后面會(huì )分專(zhuān)題具體給出闡述,因為內容比較多。
五, 使用Tips
5.1 JVM的選用
為了提供中文的安裝向導,InstallAnywhere默認提供的VM并沒(méi)有提供國際化支持,比如中文支持,這種情況下開(kāi)發(fā)者必須去:http://www.zerog.com/downloads_02c.html 下載提供國際化支持的VM,或者自己制作(具體細節,請參考InstallAnywhere 5.5. Enterprise User Guide)。
圖5 InstallAnywhere安裝的VM Packs
5.2 Customer Code的開(kāi)發(fā)
很多時(shí)候,我們需要開(kāi)發(fā)自己的向導面板。具體步驟如下:
第一,選擇一個(gè)開(kāi)發(fā)工具,比如JBuilder、Eclipse、JCreator等等。
第二,將IAClasses.zip加到classpath中。
第三,如果還使用到其他的class lib,也根據步驟2加入到classpath中。
第四,開(kāi)發(fā)具體的Customer Code。
第五,借助于InstallAnywhere將自己開(kāi)發(fā)的Customer Code加入到目標工程中,編譯、測試Customer Code。
5.3 調試信息的輸出
在使用InstallAnywhere過(guò)程中,如果需要查看安裝程序做了哪些工作,比如,加載了哪些類(lèi)、使用的JVM的版本和位置、調試信息以及錯誤信息等內容。在這種情況下,就需要借助于InstallAnywhere提供的功能。如圖6所示,開(kāi)發(fā)者可以將調試信息輸出到文件或者控制臺。比如,將錯誤信息和其他調試信息輸出到控制臺,只需要填入“console”。
圖6 調試信息的輸出
這樣一來(lái),在安裝編譯好的安裝程序后,將同時(shí)彈出一個(gè)控制臺,供用戶(hù)查看安裝日志。如果安裝日志很多,可以調整控制臺的“屏幕緩沖區大小”,比如調整圖7中屏幕緩沖區大小的高度(最大可以為,5999),這樣使得先前的日志信息不至于被沖掉。
圖7 調整屏幕緩沖區大小
5.4 中文亂碼的處理
由于InstallAnywhere處理本地化方面不是很完善。有時(shí)候,開(kāi)發(fā)人員的誤操作不小心引入很多中文亂碼。在這種情況下,需要調整本地文件,比如處理中文的“custom_zh_CN”文件。具體辦法如下:
首先,關(guān)掉InstallAnywhere,然后找到“custom_zh_CN”文件。
其次,然找到亂碼位置。
第三,借助于InstallAnywhere或者其他工具,將相應的中文Unicode替換原來(lái)的亂碼。
最后,重新打開(kāi)InstallAnywhere,編譯、安裝打包程序,看看是否正常。
其中,在這些過(guò)程中有時(shí)候需要手工調整“custom_zh_CN”文件中一些內容的順序,這種情況下,一定要保證“custom_en”和“custom_zh_CN”文件所含的英文項一致。
六, 結論
通過(guò)本文內容,您對InstallAnywhere應該有了一些了解。使用InstallAnywhere幾乎可以完成任何支持JVM的安裝程序。從非JAVA應用、J2SE應用到J2EE應用的安裝制作都可以很好的完成。這其中,在很大程度上都是借助了Java的跨平臺優(yōu)勢才得以實(shí)現