<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    制作Java安裝程序(轉)

    Posted on 2007-03-13 09:17 Matthew Chen 閱讀(2124) 評論(1)  編輯  收藏

    ROXES ANT,制作Java安裝程序- -

    ??????????????????????????????????????

    ?ROXES ANT Tasks
    這個工具利用 ANT 來制作在 Windows, MacOS X, Unix 平臺上可執行的文件,比如 exe,zip,jar。ROXES ANT Tasks 基于 GPL 發布。
    ?主頁?A >http://www.roxes.com/produkte/rat.html

    ?企業開源參考架構

    本圖來自于灰狐動力: http://www.huihoo.com/

    Java Web應用產品安裝程序制作方案


    目錄:
    隨著Java在應用產品開發中的廣泛應用,基于Java的應用產品也就越來越多,那么如何為基于Java的應用產品制作安裝程序的需求就產生了。以前人們一般都是使用InstallShield與InstallAnyWhere進行產品安裝程序的制作,這是兩個功能非常強大、易用的安裝盤制作工具,尤其是InstallAnyWhere,它還支持Java應用產品安裝制作,例如:大名鼎鼎的Jbuilder安裝程序就是由它制作的。
    本文并不準備對這些商業的安裝制作工具進行討論,本文將就如何利用開源的安裝制作工具來進行Java Web應用產品程序制作進行一些探討。
    目前用于支持Java應用安裝程序制作的開源工具非常豐富,本人將要本人在研究過程中所遇到的羅列一二以供參考:
    Packlet 是一個簡單的 Java 安裝制作工具。它將 Java Application 打包成一個可以發布的類似于 zip tgz 的壓縮文件中。這個壓縮文件被簡為 packlet ,它可以在安裝有 Java 2 Runtime Environment 的操作系統上執行 . 通過執行 packlet 將會給用戶提供一個圖形化的安裝配置界面并解壓應用。
    IzPack 是一個用于 Java 平臺的安裝程序生成器。它用于產生一個輕量級、能運行于所有安裝了 JVM 的任何的操作系統的安裝程序。生成的安裝程序可以通過雙擊或在 Command Line 通過 java –jar install.jar 命令進行啟動,安裝程序運行的方式具體將看操作系統的支持方式。 IzPack 的主要好處就是能夠生成運行于任意操作系統的安裝程序。
    Jsmooth 可以將 Java 可執行應用 Wrapper window 可執行 Exe 程序。通過 Jsmooth 生成的 Exe 程序會自動按制作時定義的順序尋找合適的 JVM ,如果能不查找到 JVM ,安裝程序會提示用戶并能根據定義好的 URL 啟動 Web Browser 讓用戶下載 JVM. 注意: Jsmooth 并不是純 Java 應用。
    VAInsall 是一個用 Java 寫的多平臺安裝程序工具。它是基于 GNU GPL2.0 許可。通過一個簡單的配置文件,它允許安裝程序打包工具由不同的目錄下收集程序包,這與一般情況下安裝程序制作工具只能由一個根目錄開始相比更為靈活。由 VAInstall 生成的安裝程序允許先擇不同的安裝模式 (graphic,text ansi)
    用于將 Java Application 安裝成為 Window NT Service. 同時與之附帶的 scripts 能夠很容易將 Java Application 安裝成為 UNIX 的后臺進程。
    Lift Off Java Installer 的最大特色就是:自解壓 class 文件,對目標系統要求低以及跨平臺性。
    一個小巧、簡單、純 Java 實現的安裝程序制作工作。
    Lauch4J 也是一個 Java 應用 Window Exe 封裝工具。通過 Lauch4J ,可以提供 splash screen, 圖標,自動查詢 JRE 或內置 JRE 等功能,同時還支持啟動失敗反饋以及命令行參數。
    AntInstaller 是一個安裝程序框架,它利用一個簡單的 XML 定義安裝界面,并以 Ant 執行安裝過程。基于 AntInstaller 的安裝程序可以打包成自解壓 jar 通過 command line 執行可 Swing GUI 來執行。
    Antigen---- Ant Installer Generator 。它主要的目的就是根據 Ant 腳本創建圖形化安裝程序。
    FreeInstaller 是一個開源項目,完全用 Java 編寫。它將應用程序打包成一個自解壓的 Java 應用。通過 FreeInstaller 可以將 Java 或非 Java 的應用安裝到 UNIX,LINUX 以及 window NT 系統中。
    一個簡單的 Java 安裝程序制作工具。整個制作過程是通過腳本完成的,最終生成一個可以通過雙擊方式執行的 jar 文件。
    通過對如上各產品的初步探索,本人最終選擇了利用izpack + jsmooth作為Java Web應用產品的安裝程序制作方案。選擇這兩種工具并不代表其它開源工具不好,只是本人自已結合自已項目的需求(本人負責公司一企業應用開發平臺的研發工作)及本人的偏好作出的選擇。
    由于本人所在公司為商業公司,所以本文描述的方案并不是企業應用開發系統平臺的實現模式,本文只是提供一個解決辦法,關于如何與自已的框架或平臺進行有效的整合,請讀者自行考慮。
    • 你需要安裝J2SDK1.4.1+版本;關于J2SDK請由Sun公司下載;
    • 你需要安裝Ant1.6.2版本,理論上其它版本也行,只是本人用的是1.6.2;
    • 請下載并安裝izpack;設定定裝到IZPACK_HOME
    • 請下載并安裝jsmooth;設定安裝到JSMOOTH_HOME
    為了便于理解,你需要對Java進行應用的開發有一定的基礎,本例將以Web應用的安裝程序制作為背景進行相關介紹,所以需要你對Web 應用開發以及其發布方式有一定的基礎;另外,本方案將會以Ant作為應用build的工具,所以你需要有一定的Ant技術;對于如上相關知識本部分不準備介紹。下面本部分將主要對izpack及jsmooth進行簡單的介紹。
    4.1.1 Jsmooth 簡介:
    Jsmooth,一個Java可執行應用封裝器(Wrapper),即將Java可執行應用程序(即可執行jar)封裝為Window可執行文件------exe文件的工具。
    通過Jsmooth將可執行jar封裝為Exe文件,使得用戶執行Java應用就如同執行一般的Window應用程序一樣,重用用戶經驗。
    Jsmooth對jar進行封裝時可以設定classpath,JVM參數,命令行參數,JVM版本及位置,這樣用戶在執行exe時不用關心JVM,Classpath等問題,這樣就簡化了Java應用執行。
    4.1.2 工作原理:
    通過Jsmooth生成的Window Exe文件通常定義為“Jsmooth Application”;
    要想生成Jsmooth Application,我們需要一個JsmoothGen 項目文件-----.jsmooth文件,后面我們將其稱為“.jsmooth文件”;.jsmooth文件實際上是一個xml文件,用于描述/定義Jsmooth Application的相關屬性,例如:classpath, JVM,Java main方法類,以及其它與Java應用運行相關的各種設定等;通常你可以通過Jsmooth提供的JsmoothGen.exe--------Windows Project Editor來創建和編輯這個文件,這個Editor如下圖所示:
    ( 圖-1)Widnow Project Editor
    ( 圖-2)Widnow Project Editor
    (圖-3)Widnow Project Editor
    在.jsmooth文件生成之后,就可以通過如下方式生成目標Jsmooth Application,即Exe文件:
    (1)。Window Project Editor:
    你可以直接在如上圖所示的編輯器通過工具條來生成:ProjectàCreate Exe
    (2)。Command Line:
    你也可以進入。jsmooth文件所以目錄,通過如下命令來生成目標Exe文件:
    ………> %jsmooth_home%\jsmoothcmd.exe yourproject.jsmooth
    (3)。通過Ant任務調用生成目標Exe
    首先你需要在你的build文件中加入jsmooth Ant 任務定義:
    <="" span="" /> <>
    classname="net.charabia.jsmoothgen.ant.JSmoothGen"
    classpath="${jsmooth_home}/lib/jsmoothgen-ant.jar"/>
    然后,通過jsmoothgen任務來執行生成Exe的工作:
    skeletonroot=”${jsmooth_home}/skeletons”/>
    所以通過Jsmooth我們可以很容易將Java Application制作Windows Exe應用。
    關于Jsmooth的詳細介紹請參考http://jsmooth.sourceforge.net/
    4.2.1. izpack 簡介:
    • izpack是基于Apache Software License 2.0許可的開源項目;
    • izpack是純Java,對部分特性有針對不同平臺版本的Library。例如:快捷鍵的創建。
    • izpack是一個用于解決安裝程序制作的Builder工具;
    • 通過izpack制作的安裝程序可以運行于不同的操作系統,Windows, Linux, Unix等,只要安裝了JDK1.4以及其后版本即可;
    • izpack優秀的模塊化設計可以允許你定制安裝程序外觀、安裝過程等;同時允許你通過其提供API調整izpack安裝過程。
    • izpack的主要功能包括(但不限于):
    ·XML based installation files
    ·easy internationalization using XML files (10 translations are already available)
    · Ant integration, command-line compiler
    ·easy customization with the panels and a rich API (even an XML parser is included !)
    ·powerful variable substitution system that you can use to customize scripts and more generally any text-based file
    ·different kinds of installers (standard, web-based, ...)
    ·launching of external executables during the installation process and Unix executable flag support (useful for the scripts for instance)
    ·layout of the installation files in packs (some can be optional)
    ·native code integration facilities
    ·jar files nesting support
    ·... more things to discover and create !.
    (圖-4)IzPack制作的安裝界面示例-選擇安裝的Pack.
    利用izpack制作安裝程序的主要有兩步:
    第一步:創建并描述安裝定義文件;
    第二步:通過izpack提供CommandLine工具或Ant Task對安裝定義文件進行編譯,編譯的結果即是生成一個可執行的jar文件,其中包括了整個安裝過程的實現以及安裝數據;
    • 安裝定義文件:
    安裝過程定義文件是一個XML文件,installation是根元素,表示定義的開始。定義主要由如下幾部分組成:
    1.…./STRONG>
    用于定義安裝程序的基本信息;

    產品中文名稱 /SPAN>
    產品版本號,例如: 1.0-062312/SPAN>
    公司網址 /SPAN>
    JDK 版本號: 1.4.2/SPAN>
    /FONT>
    2 ……/STRONG>
    用于定義安裝程序界面信息,例如:

    /FONT>
    3.……../STRONG>
    定義變量或配置信息,變量在整個安裝制作的過程中非常重要,變量兩種用途:其一:作為配置用,例如可以通過按照一定的命名稱規則為某個變量設定一個值,izpack在執行安裝過程中將會讀取某個變量的值來決定某個安裝向導窗口是否可見等;例如:我們可以通過定義compareToVariable.、compareToOperator.與compareToValue.的組合決定第個用戶自定義的向導窗口在安裝時是否可見,這樣就可以通過上個窗口用戶選擇來決定下個窗口是否可見;其二:作為替換變量用,通常安裝過程中收集的信息存放在變量中,然后,在安裝程序進行到最后,利用變量的值來替換安裝目標文件中的內容。

    /FONT>
    4. …./STRONG>
    決定,安裝程序界面所支持的語言。

    /FONT>
    5. ……../STRONG>
    用于為安裝界面指定圖片或圖標
    用于指定用戶自定義安裝向導窗口定義XML文件的位置
    用于指定安裝向導窗口中國際化資源XML文件的位置
    等等,例如:

    < resources >
    < res src = "langsel.jpg" id = "installer.langsel.img" />
    < res src = "readme.html" id = "HTMLInfoPanel.info" parse = "yes" type = "plain" encoding = "GB2312" />
    < res src = "readme_chn.html" id = "HTMLInfoPanel.info_chn" parse = "yes" type = "plain" encoding = "GB2312" />
    < res src = "license.html" id = "HTMLLicencePanel.licence" parse = "yes" type = "plain" encoding = "GB2312" />
    < res src = "license_chn.html" id = "HTMLLicencePanel.licence_chn" parse = "yes" type = "plain" encoding = "GB2312" />
    < res src = "shortcutSpec.xml" id = "shortcutSpec.xml" parse = "yes" type = "xml" encoding = "GB2312" />
    < res src = "Unix_shortcutSpec.xml" id = "Unix_shortcutSpec.xml" parse = "yes" type = "xml" encoding = "GB2312" />
    < res src = "packsLang.xml" id = "packsLang.xml" />
    < res src = "packsLang_chn.xml" id = "packsLang.xml_chn" />
    < res src = "UserInputSpec.xml" id = "userInputSpec.xml" />
    < res src = "UserInputLang.xml" id = "userInputLang.xml" />
    < res src = "UserInputLang_chn.xml" id = "userInputLang.xml_chn" />
    SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">resources >
    6. ……. /STRONG>
    本部分用于定義整個安裝過程,每個panel即是一個安裝向導窗口,panel是按順序由IzPack調用的。IzPack內置了很多的Panel,另外它還支持用戶自定義的功能,主要是通過UserInputPanel來實現的,你可以通過在……定義的ID為UserInputSpec.xml的資源(XML)中定義UserInputPanel窗口中用戶錄入項目及相關存放的變量。另外,Izpack支持條件用戶自定義Panel,即ConditionalUserInputPanel,你可以在….通過變量來控制這樣的向導窗口的可見性。當安裝過程執行到InstallPanel時IzPack開始解壓安裝包到硬盤中,所以,一般來說所有的配置信息(例如,安裝目錄,安裝包的選擇等)都應在InstallPanel之前完成。在InstallPanel之后可以通過ShortcutPanel來顯示快捷方式創建窗口,另外還可以通過ProcessPanel來執行一些后續操作。

    < panels >
    < panel classname = "HTMLLicencePanel" />
    < panel classname = "HTMLInfoPanel" />
    < panel classname = "TargetPanel" />
    < panel classname = "PacksPanel" />
    < panel classname = "UserInputPanel" />
    < panel classname = "SummaryPanel" />
    < panel classname = "InstallPanel" />
    < panel classname = "ShortcutPanel" />
    < panel classname = "SimpleFinishPanel" />
    SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">panels >
    7. ……. /STRONG>
    本部分主要用于定義安裝包,即將哪些文件進行打包,以及將來安裝時如何進行安裝。通過可以將應用程序文件分解成不同的安裝包,可以指定哪些pack是必須安裝的,哪些是可選的。
    前邊我們講過,我們可以在中加入自定義向導窗口來允許用戶指定一些配置,這些配置信息被存放到變量中,我們可以利用用戶指定的值來替換應用程序中部分文件中的內容。那么在定義pack時,就可以指定哪些文件在安裝時需要進行解析(parseable)。需要注意的,你需要指定需要解析的方式(xml, javaprop, plain,shell),如查將javaprop類型的文件解析類型設定為plain的話,可以就有問題,例如:如果變量的值為路徑,那么在可能就會有問題。
    另,對于每一個Pack在它安裝(copy文件)之后,可以定義它執行一個程序,例如腳本程序。你可以利用這種功能來做一些工作,例如:你可執行腳本程序來導入數據庫數據等。
    下面是一個示例:

    < packs >
    < pack id = "ToolKit" name = "ToolKit" required = "yes" >
    …………
    SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">pack >
    < pack id = "Core" name = "Core" required = "yes" >
    < description > packsLang.xml packsLang.xml_chn 中描述了 . SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">description >
    < fileset dir = "app" targetdir = "$INSTALL_PATH\app" >
    < include name = "*" />
    < include name = "**" />
    SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">fileset >
    < fileset dir = "native" targetdir = "$INSTALL_PATH\native" >
    < include name = "*" />
    < include name = "**" />
    SPAN style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: #3f7f7f">fileset >
    < file src = "clear.db.splash.gif" targetdir = "$INSTALL_PATH" />
    < file src = "init.db.splash.gif" targetdir = "$INSTALL_PATH" />
    < file src = "installer.properties" targetdir = "$INSTALL_PATH" />
    < file src = "installer.xml" targetdir = "$INSTALL_PATH" />
    < file src = "installer.bat" targetdir = "$INSTALL_PATH" />
    < file src = "uninstaller.bat" targetdir = "$INSTALL_PATH" />
    < parsable targetfile = "$INSTALL_PATH/installer.properties"
    type = "javaprop" />
    &




    我想把我做好的java應用程序做成安裝包,可以在沒有java環境的電腦上順利安裝和運行,請問該如何制作?需要用到什么工具?

    我現在還在測試的方法是:把com(編譯產生的類文件目錄,是代碼中的包)、image(圖標目錄)和lib(第三方庫文件,比如jbuilder的jbcl.jar)壓縮成一個.jar文件,配合一個data(數據庫目錄,一個access文件),只要雙擊jar文件就可以運行。是不是還要一個jre安裝包?

    請指教,多謝!


    用InstallAnywhere等安裝包制作工具是相對方便的
    他可以搜索本機JRE,或是單獨安裝一個JRE,生成exe laucher

    自己做的,把JRE復制下來,寫個bat執行那個jre中的java
    如MyProject/JRE
    MyProject/run.bat JRE/bin/java.exe -Xmx300M -jar project.jar

    ?

    shsen wrote:
    你是說把j2sdk安裝目錄下的那個jre目錄拷貝到我的程序目錄下,再做一個bat文件就可以嗎?

    -Xmx300M 是什么意思?

    ?

    對的,在沒有用InstallAnywhere之前我這么做過。
    -Xmx300M是指JVM最大分配內存300M,如果你的應用不大,就不用管這個


    謝謝,我試試看。也安裝了IA5,試用了一下,好像產生出來的不是可執行文件。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产无遮挡吃胸膜奶免费看| 亚洲美女视频免费| 久久久久久99av无码免费网站| 日韩毛片在线免费观看| 亚洲粉嫩美白在线| 亚洲色成人网一二三区| 成人午夜亚洲精品无码网站| 国产精品免费看香蕉| 免费观看的毛片大全| 99re6在线视频精品免费下载| aaa毛片免费观看| 朝桐光亚洲专区在线中文字幕| 亚洲人色大成年网站在线观看| 日韩亚洲人成在线综合日本| 亚洲伊人成无码综合网 | 国产AV无码专区亚洲AVJULIA | 亚洲综合中文字幕无线码| 亚洲国产日韩成人综合天堂| 国产免费一区二区三区| 免费国产午夜高清在线视频| 一级特黄录像免费播放中文版| 亚洲av日韩综合一区二区三区| 亚洲国产精品综合久久20| 亚洲一区二区三区亚瑟| 亚洲精品乱码久久久久久下载 | 亚洲娇小性xxxx| 亚洲av日韩av无码av| 亚洲的天堂av无码| 亚洲视频欧洲视频| 亚洲最大成人网色| 久久av无码专区亚洲av桃花岛| 亚洲AV日韩AV永久无码绿巨人 | 国产成人无码精品久久久久免费 | 国产午夜无码视频免费网站| 免费无码成人AV片在线在线播放| 最新猫咪www免费人成| 成人av免费电影| 国产成人免费福利网站| 亚洲国产成人久久精品99| 麻豆视频免费观看| 亚洲乱码国产乱码精华|