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

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

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

    dream.in.java

    能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

    如何制作Java可執(zhí)行程序以及安裝程序

    如何制作Java可執(zhí)行程序以及安裝程序http://www.diybl.com/ 2008-11-6  網(wǎng)絡 點擊:714  [ 評論 ]
    文章搜索:     【點擊打包該文章】 被過濾廣告
    【本站開通在線QQ討論群】

    首先我們介紹一下生成 運行Java程序的三種方式-----
    Java 生成的jar包執(zhí)行方式一般有三種:
    1直接用系統(tǒng)j2se binnary執(zhí)行。由于jar包也可以用winrar打開,造成沖突,你可以將文件關聯(lián)設置一下即可。這樣的話jar包和.exe文件并無二致。而且不損失其平臺型。
    2 編寫腳本。在windows下為.bat ,在linux 或者unix下為.sh。其實個人感覺這個更簡單。而且很多大程序也是用這種方式運作的。比如tomcat 以及weblogic都是以這種腳本的方式啟動。好處是可以設置各種系統(tǒng)環(huán)境變量,檢測運行的環(huán)境,改變啟動參數(shù)等等。比如在windows下我們只要加一句:start java –jar xxx.jar就可以了。
    3 利用各種各種第三方工具將jar包制作成.bin(unix),或者.exe(windows)文件。但這是以失去跨平臺特性為條件的。當然好處是帶來了更好的用戶體驗。
    第一種只要你安裝了j2se就可以
    第二種 我們可以舉個例子
    假設有個allwefantasy.jar的jar包(里面含有manifest文件),于是在相同目錄下我建一個allwefantasy.bat(名字可以隨意定,如果是在linux下平臺就改成sh后綴名)。內(nèi)容為
    start java –jar xxx.jar
    。以后雙擊就可運行。
    第三種是我這篇文章的重點。
    將 jar包包裝成exe可執(zhí)行文件
    其實這種方式在JDK里面就在應用了。不知道你有沒有注意到,%JAVA_HOME%\bin里面全是.exe文件,但仔細看看這些文件都只有幾個kb而已,這是為什么呢,因為這只是一種wrapper.包裝,真正在運行的仍然是jar文件。也可以稱作偽exe文件。那么,如何將jar文件制作成可以直接運行的exe文件呢?這里我介紹兩款我用過的。NativeJ 以及開源的jsmooth.
    我個人比較喜歡用開源的,呵呵那先來介紹一下Jsmooth吧。
    圖片(2)
    使用很簡單,在Skeleton選項卡中的第一個下拉框中windowsed wrapper.
    圖片(4)
    接著選擇Executable選項卡,第一個空是你要生成的exe文件是叫什么,你自己隨意定。第二個空的你想給自己的exe文件弄個什么圖標,你可以實現(xiàn)做好一個ico圖形文件然后使用。
    第三個空就是你jar包所在目錄。
    圖片(6)
    在Application選顯卡中第一個空粘帖你的 main-class 的全路徑。不知道我說清楚了沒,也就是你主函數(shù)所在目錄的包名+主函數(shù)名字。比如我要講的例子中drawsmart.itsv.AppMain。
    然后再勾選use an embedded.jar.
    最后選擇你所需要的jar包就可以了。
    最后點擊編譯按鈕就好了。Project –compile—

    接著介紹nativeJ,顧名思義,nativej就是本地化java的意思。
    這個軟件需要購買,不然啟動的時候會彈出可惡的框框,跟可惡的是生成的exe。文件在執(zhí)行的時候還會彈出申明這個程序是由它生成的。。
    呵呵 抱怨的話不多講,做軟件的人也不容易。
    圖片(8)
    一開始用的時候也覺得莫名其妙,不得要領,后來琢磨了一下,才鬧明白。你事先建立一個目錄里面,并且在目錄里面建一個空的后綴名為njp文本文件。
    然后點擊new project wizard,
    圖片(10)
    選擇剛才建好的工程文件就可以了。接著就是依次填入一些參數(shù)。參數(shù)跟Jsmooth差不多,主要有兩個,主類的全路徑(包名+類名)以及jar包。
    最后就能生成我們期待的exe文件了。
    圖片(12)
    這是我生成的文件。
    需要注意的是Jsmooth 和nativeJ生成的exe文件還是有所不同的。我不知道設置會不會改變這種不同。
    nativeJ中,如上圖所示,由于jar并沒有將所有的文件都打入包中,比如images.所以生成的exe文件依然是以來jar包以及其他文件的。個人感覺有點像bat文件。
    而在jsmooth中,生成了一個exe文件,但是文件卻很大,似乎包含了整個jar包以及資源文件,可是卻不能單獨執(zhí)行(為什么,我也沒弄明白)。
    圖片(14)
    如何為java程序制作安裝程序
    制作安裝程序并不是一項簡單的工作。特別對于大型程序來說。你看oracle光安裝就的花你半個小時。安裝制作程序有很多,大型商業(yè)類的有intallAnyWhere 以及installShield .功能超級強大,但畢竟是商業(yè)軟件,是需要花銀子的。此外,因為功能強,學習他的曲線也是比較陡峭的。
    這里我還是介紹一個開源的軟件。IzPack。你可以到官網(wǎng)去下。
    在安裝的時候你可以看到他用自己做的安裝界面。
    圖片(16)
    安裝后必須自己找到他的目錄。這里有兩點大家可能不習慣,第一,他沒有圖形界面,第二,他在你給他寫好他所需要的install.xml文件時候,是無法運行的。
    也許你還不太理解。沒關系,我們講講他的設計理念。
    安裝程序無非就幾個界面板塊,語言選擇,如上面的第一副圖片,許可申明,如第二副圖,安裝進程,安裝結(jié)束界面等。在IzPack中這些叫面板。IzPack就是利用install.xml文件配置這些面板。當然他還有很多內(nèi)部細節(jié),比如注冊表的注冊等,當然這是另外一回事了。然后生成一個jar包(又是jar包,為什么不直接生成exe文件呢,呵呵這個我也不知道,你得去問設計的人,呵呵PS:其實還是為了跨平臺)。
    那么如何寫install,xml 文檔呢,說明書有一百五十多業(yè),還是自己慢慢看。不過我可以拿一個自己做的范例來看看。
    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <installation version="1.0">
    //info 主要是一些版本 作者信息

    <info>
    <appname>我的畫畫本</appname>
    <appversion>1.4 beta </appversion>
    <authors>
    <author name="GuanSheng" email="wgs@superman.org"/>
    <author name="HailLIN" email="zhl@hisdomain.com"/>

    </authors>
    <url>http://www.superman.net/</url>
    </info>

    //guiprefs主要設置安裝界面的大小,以及是否可以改變尺寸
    <guiprefs width="640" height="480" resizable="no"/>

    //這里很java里面的國際化很像,我沒數(shù)過,但IzPack支持很多國家的語言,我這里面選了 英文以及中文。注意,他的語言的縮寫和java里面不一致,你要參考文檔
    <locale>
    <langpack iso3="eng"/>
    <langpack iso3="chn"/>
    </locale>


    //資源文件愛你,我這里放了許可申明以及閱readme文件

    <resources>
    <res id="LicencePanel.licence" src="Licence.txt"/>
    <res id="InfoPanel.info" src="Readme.txt"/>
    </resources>


    //這個就是各個板塊了 比如開始,安裝,申明板塊都在這定義了
    <panels>
    <panel classname="HelloPanel"/>
    <panel classname="InfoPanel"/>
    <panel classname="LicencePanel"/>
    <panel classname="TargetPanel"/>
    <panel classname="PacksPanel"/>
    <panel classname="InstallPanel"/>
    <panel classname="FinishPanel"/>
    </panels>


    <packs>
    <pack name="Base" required="yes">
    <description>The base files</description>
    <file src="Readme.txt" targetdir="$INSTALL_PATH"/>
    <file src="Licence.txt" targetdir="$INSTALL_PATH"/>
    <file src="kitty.exe" targetdir="$INSTALL_PATH"/>
    <parsable targetfile="$INSTALL_PATH/kitty.exe"/>
    //文件復制到安裝文件夾里面就靠這個了
    </pack>
    <pack name="image" required="yes">
    <description>The documentation</description>
    <file src="images" targetdir="$INSTALL_PATH"/>

    </pack>
    <pack name="xmlfile" required="yes">
    <description>The sources</description>
    <file src="xmlfile" targetdir="$INSTALL_PATH"/>
    </pack>
    <pack name="temp" required="yes">
    <description>The sources</description>
    <file src="temp" targetdir="$INSTALL_PATH"/>
    </pack>
    <pack name="drawflow" required="yes">
    <description>The sources</description>
    <file src="drawflow3_0.jar" targetdir="$INSTALL_PATH"/>
    </pack>

    <pack name="service" required="yes">
    <description>The sources</description>
    <file src="service.ico" targetdir="$INSTALL_PATH"/>
    </pack>
    <pack name="addon" required="yes">
    <description>The sources</description>
    <file src="add-on" targetdir="$INSTALL_PATH"/>
    </pack>
    </packs>

    </installation>

     


    寫好這個文件后將它放在你要制作成安裝文件的主目錄下,然后用compile.bat運行它,就能得到一個jar文件(PS:注意,在cmd 中一定要在install所在目錄執(zhí)行install不然會提示找不到各個文件,我就被他卡在這很多時間)
    那么生成一個jar文件有什么用呢,呵呵,別急
    看最后一步


    將jar包的安裝程序轉(zhuǎn)換成exe安裝程序
    實際上到這一步,就是用jsmooth將jar安裝程序wrapper成exe.那么最后就大功告成了。
    所以用了三個步驟。Jar 程序--jsmooth---exe程序----IzPack---jar安裝程序---jsmooth—exe安裝程序。
    當然如果你想更專業(yè)點,可以用installsheild或者intallanywhere。簡單說說這兩個軟件,圖形界面,可操作性相當?shù)暮谩6覍τ趯W習用來說,他不需要注冊碼。唯一的缺點是,如果你不注冊,你制作的安裝程序在安裝的時候就會彈出該產(chǎn)品未注冊的提示框。

    我也是在網(wǎng)上看到很多網(wǎng)友問著一方面的問題卻往往得不到好的解答。所以在此總結(jié)一下。希望和大家多多交流。

    文章出處:http://www.diybl.com/course/3_program/java/javajs/20081013/150469.html

    posted on 2009-02-16 12:56 YXY 閱讀(336) 評論(0)  編輯  收藏


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


    網(wǎng)站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 日韩电影免费观看| 好吊妞视频免费视频| 亚洲AV无码成人专区| 四虎免费久久影院| 一区二区免费视频| 亚洲aⅴ无码专区在线观看| 中文字幕精品亚洲无线码一区| 在线免费观看亚洲| 国产成人综合亚洲一区| 特级aaaaaaaaa毛片免费视频| 亚洲精品字幕在线观看| 成熟女人牲交片免费观看视频| 免费人妻精品一区二区三区| 337p日本欧洲亚洲大胆精品555588| 国产91在线免费| 亚洲视频免费播放| 中文字幕无码免费久久9一区9 | 亚洲av无码国产综合专区| 亚洲女同成人AⅤ人片在线观看| 亚洲w码欧洲s码免费| japanese色国产在线看免费| 亚洲综合精品香蕉久久网| 特级做A爰片毛片免费69| 亚洲色无码专区一区| 成年轻人网站色免费看| 国产成人AV片无码免费| 日韩少妇内射免费播放| 无码永久免费AV网站| 免费91最新地址永久入口 | 亚洲综合无码一区二区痴汉| 亚洲国产精品成人精品无码区| 97公开免费视频| WWW免费视频在线观看播放| 亚洲综合在线观看视频| 一二三四影视在线看片免费 | 九九热久久免费视频| 亚洲av无码一区二区三区在线播放| 亚洲午夜电影在线观看高清 | 亚洲黄色一级毛片| 日本亚洲视频在线| 亚洲乱码中文字幕综合234|