制作Java安裝程序_第1頁
制作Java安裝程序_第2頁
制作Java安裝程序_第3頁
制作Java安裝程序_第4頁
制作Java安裝程序_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

學(xué)習(xí)文檔僅供參考制作Java安裝程序這個(gè)工具利用ANT來制作在Windows,MacOSX,Unix平臺(tái)上可執(zhí)行的文件,比方exe,zip,jar。ROXESANTTasks基于GPL發(fā)布。://roxes/produkte/rat.html企業(yè)開源參考架構(gòu)JavaWeb應(yīng)用產(chǎn)品安裝程序制作方案目錄:一.背景二.開源工具三.環(huán)境準(zhǔn)備四.技術(shù)準(zhǔn)備4.1.Jsmooth.Jsmooth簡介.工作原理4.2.IzPack.IzPack簡介.工作原理五.方案實(shí)例六.結(jié)束一.背景:隨著Java在應(yīng)用產(chǎn)品開發(fā)中的廣泛應(yīng)用,基于Java的應(yīng)用產(chǎn)品也就越來越多,那么如何為基于Java的應(yīng)用產(chǎn)品制作安裝程序的需求就產(chǎn)生了。以前人們一般都是使用InstallShield與InstallAnyWhere進(jìn)行產(chǎn)品安裝程序的制作,這是兩個(gè)功能非常強(qiáng)大、易用的安裝盤制作工具,尤其是InstallAnyWhere,它還支持Java應(yīng)用產(chǎn)品安裝制作,例如:大名鼎鼎的Jbuilder安裝程序就是由它制作的。本文并不準(zhǔn)備對(duì)這些商業(yè)的安裝制作工具進(jìn)行討論,本文將就如何利用開源的安裝制作工具來進(jìn)行JavaWeb應(yīng)用產(chǎn)品程序制作進(jìn)行一些探討。二.開源工具:目前用于支持Java應(yīng)用安裝程序制作的開源工具非常豐富,本人將要本人在研究過程中所遇到的羅列一二以供參考:PackletPacklet是一個(gè)簡單的Java安裝制作工具。它將JavaApplication打包成一個(gè)可以發(fā)布的類似于zip或tgz的壓縮文件中。這個(gè)壓縮文件被簡為packlet,它可以在安裝有Java2RuntimeEnvironment的操作系統(tǒng)上執(zhí)行.通過執(zhí)行packlet將會(huì)給用戶提供一個(gè)圖形化的安裝配置界面并解壓應(yīng)用。GoToPackletIzPackIzPack是一個(gè)用于Java平臺(tái)的安裝程序生成器。它用于產(chǎn)生一個(gè)輕量級(jí)、能運(yùn)行于所有安裝了JVM的任何的操作系統(tǒng)的安裝程序。生成的安裝程序可以通過雙擊或在CommandLine通過java–命令進(jìn)行啟動(dòng),安裝程序運(yùn)行的方式具體將看操作系統(tǒng)的支持方式。IzPack的主要好處就是能夠生成運(yùn)行于任意操作系統(tǒng)的安裝程序。GoToIzPackJSmoothJsmooth可以將Java可執(zhí)行應(yīng)用Wrapper成window可執(zhí)行Exe程序。通過Jsmooth生成的Exe程序會(huì)自動(dòng)按制作時(shí)定義的順序?qū)ふ疫m宜的JVM,如果能不查找到JVM,安裝程序會(huì)提示用戶并能根據(jù)定義好的URL啟動(dòng)WebBrowser讓用戶下載JVM.注意:Jsmooth并不是純Java應(yīng)用。GoToJSmoothVAInstallVAInsall是一個(gè)用Java寫的多平臺(tái)安裝程序工具。它是基于許可。通過一個(gè)簡單的配置文件,它允許安裝程序打包工具由不同的目錄下收集程序包,這與一般情況下安裝程序制作工具只能由一個(gè)根目錄開始相比更為靈活。由VAInstall生成的安裝程序允許先擇不同的安裝模式(graphic,text或ansi)。GoToVAInstallJavaServiceWrapper用于將JavaApplication安裝成為WindowNTService.同時(shí)與之附帶的scripts能夠很容易將JavaApplication安裝成為UNIX的后臺(tái)進(jìn)程。GoToJavaServiceWrapperLiftOffJavaInstallerLiftOffJavaInstaller的最大特色就是:自解壓class文件,對(duì)目標(biāo)系統(tǒng)要求低以及跨平臺(tái)性。GoToLiftOffJavaInstallerToolshed一個(gè)小巧、簡單、純Java實(shí)現(xiàn)的安裝程序制作工作。GoToToolshedLaunch4JLauch4J也是一個(gè)Java應(yīng)用WindowExe封裝工具。通過Lauch4J,可以提供splashscreen,圖標(biāo),自動(dòng)查詢JRE或內(nèi)置JRE等功能,同時(shí)還支持啟動(dòng)失敗反應(yīng)以及命令行參數(shù)。GoToLaunch4JAntInstallerAntInstaller是一個(gè)安裝程序框架,它利用一個(gè)簡單的XML定義安裝界面,并以Ant執(zhí)行安裝過程?;贏ntInstaller的安裝程序可以打包成自解壓jar通過commandline執(zhí)行可SwingGUI來執(zhí)行。GoToAntInstallerAntigenAntigen----即AntInstallerGenerator。它主要的目的就是根據(jù)Ant腳本創(chuàng)立圖形化安裝程序。GoToAntigenFreeInstallerFreeInstaller是一個(gè)開源工程,完全用Java編寫。它將應(yīng)用程序打包成一個(gè)自解壓的Java應(yīng)用。通過FreeInstaller可以將Java或非Java的應(yīng)用安裝到UNIX,LINUX以及windowNT系統(tǒng)中。GoToFreeInstallerMiniInstaller一個(gè)簡單的Java安裝程序制作工具。整個(gè)制作過程是通過腳本完成的,最終生成一個(gè)可以通過雙擊方式執(zhí)行的jar文件。GoToMiniInstaller通過對(duì)如上各產(chǎn)品的初步探索,本人最終選擇了利用izpack+jsmooth作為JavaWeb應(yīng)用產(chǎn)品的安裝程序制作方案。選擇這兩種工具并不代表其它開源工具不好,只是本人自已結(jié)合自已工程的需求(本人負(fù)責(zé)公司一企業(yè)應(yīng)用開發(fā)平臺(tái)的研發(fā)工作)及本人的偏好作出的選擇。由于本人所在公司為商業(yè)公司,所以本文描述的方案并不是企業(yè)應(yīng)用開發(fā)系統(tǒng)平臺(tái)的實(shí)現(xiàn)模式,本文只是提供一個(gè)解決方法,關(guān)于如何與自已的框架或平臺(tái)進(jìn)行有效的整合,請(qǐng)讀者自行考慮。三.環(huán)境準(zhǔn)備:你需要安裝J2SDK+版本;關(guān)于J2SDK請(qǐng)由Sun公司下載;你需要安裝Ant版本,理論上其它版本也行,只是本人用的是;請(qǐng)下載并安裝izpack;設(shè)定定裝到IZPACK_HOME請(qǐng)下載并安裝jsmooth;設(shè)定安裝到JSMOOTH_HOME四.技術(shù)準(zhǔn)備:為了便于理解,你需要對(duì)Java進(jìn)行應(yīng)用的開發(fā)有一定的根底,本例將以Web應(yīng)用的安裝程序制作為背景進(jìn)行相關(guān)介紹,所以需要你對(duì)Web應(yīng)用開發(fā)以及其發(fā)布方式有一定的根底;另外,本方案將會(huì)以Ant作為應(yīng)用build的工具,所以你需要有一定的Ant技術(shù);對(duì)于如上相關(guān)知識(shí)本局部不準(zhǔn)備介紹。下面本局部將主要對(duì)izpack及jsmooth進(jìn)行簡單的介紹。4.1.jsmooth:Jsmooth簡介:Jsmooth,一個(gè)Java可執(zhí)行應(yīng)用封裝器(Wrapper),即將Java可執(zhí)行應(yīng)用程序(即可執(zhí)行jar)封裝為Window可執(zhí)行文件------exe文件的工具。通過Jsmooth將可執(zhí)行jar封裝為Exe文件,使得用戶執(zhí)行Java應(yīng)用就如同執(zhí)行一般的Window應(yīng)用程序一樣,重用用戶經(jīng)驗(yàn)。Jsmooth對(duì)jar進(jìn)行封裝時(shí)可以設(shè)定classpath,JVM參數(shù),命令行參數(shù),JVM版本及位置,這樣用戶在執(zhí)行exe時(shí)不用關(guān)心JVM,Classpath等問題,這樣就簡化了Java應(yīng)用執(zhí)行。工作原理:通過Jsmooth生成的WindowExe文件通常定義為“JsmoothApplication〞;要想生成JsmoothApplication,我們需要一個(gè)JsmoothGen工程文件文件,后面我們將其稱為“.jsmooth文件〞;.jsmooth文件實(shí)際上是一個(gè)xml文件,用于描述/定義JsmoothApplication的相關(guān)屬性,例如:classpath,JVM,Javamain方法類,以及其它與Java應(yīng)用運(yùn)行相關(guān)的各種設(shè)定等;通常你可以通過Jsmooth提供的JsmoothGen.exe--------WindowsProjectEditor來創(chuàng)立和編輯這個(gè)文件,這個(gè)Editor如下列圖所示:(圖-1)WidnowProjectEditor(圖-2)WidnowProjectEditor(圖-3)WidnowProjectEditor在.jsmooth文件生成之后,就可以通過如下方式生成目標(biāo)JsmoothApplication,即Exe文件:(1)。WindowProjectEditor:你可以直接在如上圖所示的編輯器通過工具條來生成:ProjectàCreateExe。(2)。CommandLine:你也可以進(jìn)入。jsmooth文件所以目錄,通過如下命令來生成目標(biāo)Exe文件:………(3)。通過Ant任務(wù)調(diào)用生成目標(biāo)Exe:首先你需要在你的build文件中參加jsmoothAnt任務(wù)定義:<>classname="net.charabia.jsmoothgen.ant.JSmoothGen"classpath="${jsmooth_home}/lib/jsmoothgen-ant.jar"/>然后,通過jsmoothgen任務(wù)來執(zhí)行生成Exe的工作:skeletonroot=〞${jsmooth_home}/skeletons〞/>所以通過Jsmooth我們可以很容易將JavaApplication制作WindowsExe應(yīng)用。關(guān)于Jsmooth的詳細(xì)介紹請(qǐng)參考4.2.izpack:.izpack簡介:izpack是基于許可的開源工程;izpack是純Java,對(duì)局部特性有針對(duì)不同平臺(tái)版本的Library。例如:快捷鍵的創(chuàng)立。izpack是一個(gè)用于解決安裝程序制作的Builder工具;通過izpack制作的安裝程序可以運(yùn)行于不同的操作系統(tǒng),Windows,Linux,Unix等,只要安裝了以及其后版本即可;izpack優(yōu)秀的模塊化設(shè)計(jì)可以允許你定制安裝程序外觀、安裝過程等;同時(shí)允許你通過其提供API調(diào)整izpack安裝過程。izpack的主要功能包括(但不限于):·XMLbasedinstallationfiles·easyinternationalizationusingXMLfiles(10translationsarealreadyavailable)·Antintegration,command-linecompiler·easycustomizationwiththepanelsandarichAPI(evenanXMLparserisincluded!)·powerfulvariablesubstitutionsystemthatyoucanusetocustomizescriptsandmoregenerallyanytext-basedfile·differentkindsofinstallers(standard,web-based,...)·launchingofexternalexecutablesduringtheinstallationprocessandUnixexecutableflagsupport(usefulforthescriptsforinstance)·layoutoftheinstallationfilesinpacks(somecanbeoptional)·nativecodeintegrationfacilities·jarfilesnestingsupport·...morethingstodiscoverandcreate!.(圖-4)IzPack制作的安裝界面例如-選擇安裝的Pack..原理及過程利用izpack制作安裝程序的主要有兩步:第一步:創(chuàng)立并描述安裝定義文件;第二步:通過izpack提供CommandLine工具或AntTask對(duì)安裝定義文件進(jìn)行編譯,編譯的結(jié)果即是生成一個(gè)可執(zhí)行的jar文件,其中包括了整個(gè)安裝過程的實(shí)現(xiàn)以及安裝數(shù)據(jù);安裝定義文件:安裝過程定義文件是一個(gè)XML文件,installation是根元素,表示定義的開始。定義主要由如下幾局部組成:1.….用于定義安裝程序的根本信息;產(chǎn)品中文名稱產(chǎn)品版本號(hào),例如:公司網(wǎng)址JDK版本號(hào):2.……用于定義安裝程序界面信息,例如:3.……..定義變量或配置信息,變量在整個(gè)安裝制作的過程中非常重要,變量兩種用途:其一:作為配置用,例如可以通過按照一定的命名稱規(guī)那么為某個(gè)變量設(shè)定一個(gè)值,izpack在執(zhí)行安裝過程中將會(huì)讀取某個(gè)變量的值來決定某個(gè)安裝向?qū)Т翱谑欠窨梢姷?;例如:我們可以通過定義compareToVariable.、compareToOperator.與compareToValue.的組合決定第個(gè)用戶自定義的向?qū)Т翱谠诎惭b時(shí)是否可見,這樣就可以通過上個(gè)窗口用戶選擇來決定下個(gè)窗口是否可見;其二:作為替換變量用,通常安裝過程中收集的信息存放在變量中,然后,在安裝程序進(jìn)行到最后,利用變量的值來替換安裝目標(biāo)文件中的內(nèi)容。4.….決定,安裝程序界面所支持的語言。5.……..用于為安裝界面指定圖片或圖標(biāo)用于指定用戶自定義安裝向?qū)Т翱诙xXML文件的位置用于指定安裝向?qū)Т翱谥袊H化資源XML文件的位置等等,例如:<resources><ressrc="langsel.jpg"id="installer.langsel.img"/><ressrc="readme.html"id="HTMLInfoP"parse="yes"type="plain"encoding="GB2312"/><ressrc="readme_chn.html"id="HTMLInfoP_chn"parse="yes"type="plain"encoding="GB2312"/><ressrc="license.html"id="HTMLLicencePanel.licence"parse="yes"type="plain"encoding="GB2312"/><ressrc="license_chn.html"id="HTMLLicencePanel.licence_chn"parse="yes"type="plain"encoding="GB2312"/><ressrc="shortcutSpec.xml"id="shortcutSpec.xml"parse="yes"type="xml"encoding="GB2312"/><ressrc="Unix_shortcutSpec.xml"id="Unix_shortcutSpec.xml"parse="yes"type="xml"encoding="GB2312"/><ressrc="packsLang.xml"id="packsLang.xml"/><ressrc="packsLang_chn.xml"id="packsLang.xml_chn"/><ressrc="UserInputSpec.xml"id="userInputSpec.xml"/><ressrc="UserInputLang.xml"id="userInputLang.xml"/><ressrc="UserInputLang_chn.xml"id="userInputLang.xml_chn"/>resources>6.…….本局部用于定義整個(gè)安裝過程,每個(gè)panel即是一個(gè)安裝向?qū)Т翱?,panel是按順序由IzPack調(diào)用的。IzPack內(nèi)置了很多的Panel,另外它還支持用戶自定義的功能,主要是通過UserInputPanel來實(shí)現(xiàn)的,你可以通過在……中定義的ID為的資源(XML)中定義UserInputPanel窗口中用戶錄入工程及相關(guān)存放的變量。另外,Izpack支持條件用戶自定義Panel,即ConditionalUserInputPanel,你可以在….中通過變量來控制這樣的向?qū)Т翱诘目梢娦?。?dāng)安裝過程執(zhí)行到InstallPanel時(shí)IzPack開始解壓安裝包到硬盤中,所以,一般來說所有的配置信息(例如,安裝目錄,安裝包的選擇等)都應(yīng)在InstallPanel之前完成。在InstallPanel之后可以通過ShortcutPanel來顯示快捷方式創(chuàng)立窗口,另外還可以通過ProcessPanel來執(zhí)行一些后續(xù)操作。<panels><panelclassname="HTMLLicencePanel"/><panelclassname="HTMLInfoPanel"/><panelclassname="TargetPanel"/><panelclassname="PacksPanel"/><panelclassname="UserInputPanel"/><panelclassname="SummaryPanel"/><panelclassname="InstallPanel"/><panelclassname="ShortcutPanel"/><panelclassname="SimpleFinishPanel"/>panels>7.…….本局部主要用于定義安裝包,即將哪些文件進(jìn)行打包,以及將來安裝時(shí)如何進(jìn)行安裝。通過可以將應(yīng)用程序文件分解成不同的安裝包,可以指定哪些pack是必須安裝的,哪些是可選的。前邊我們講過,我們可以在中參加自定義向?qū)Т翱趤碓试S用戶指定一些配置,這些配置信息被存放到變量中,我們可以利用用戶指定的值來替換應(yīng)用程序中局部文件中的內(nèi)容。那么在定義pack時(shí),就可以指定哪些文件在安裝時(shí)需要進(jìn)行解析(parseable)。需要注意的,你需要指定需要解析的方式(xml,javaprop,plain,shell),如查將javaprop類型的文件解析類型設(shè)定為plain的話,可以就有問題,例如:如果變量的值為路徑,那么

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論