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

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

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

    posts - 59, comments - 244, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    為java桌面程序制作安裝向導程序

    Posted on 2010-03-12 15:04 penngo 閱讀(4491) 評論(8)  編輯  收藏 所屬分類: Java
    1.把程序的class文件打包成jar文件
    因為我用的開發工具是eclipse,一般都是用它的插件fatjar打包class文件。
    fatjar下載地址:http://sourceforge.net/projects/fjep/files/
    本篇使用的測試程序是上一篇:借助瀏覽器控件利用CSS和javascript設計桌面程序界面中的HtmlFrame.jar

    2.把jar文件轉成exe文件,window平臺上可運行的文件是exe,這一步需要把帶main()方法的jar文件轉成exe,
    新建文件夾HtmlFrame2,把HtmlFrame.jar和tree.html,放進這個文件夾內,現在的HtmlFrame.jar只能在裝了jre的機器上跑,要讓它在沒有裝jre的機器上跑,我們需要為HtmlFrame.jar配一個jre,在一臺裝有jre的機器上把整個jre文件夾復制到HtmlFrame2,如我本機裝了JDK1.6.0_17,路徑C:\Program Files\java。可以直接把C:\Program Files\java中的文件夾jre6(也可以C:\Program Files\java\JDK1.6.0_17中的jre文件夾)復制到HtmlFrame2中,現在HtmlFrame2文件夾中有
    HtmlFrame2\HtmlFrame.jar
    HtmlFrame2\tree.html
    HtmlFrame2\jre6
    要讓HtmlFrame.jar可以運行,需要告訴它jre的路徑。一種方法是用bat文件為HtmlFrame.jar設置classpath;另一種方法是通過第三方工具,如exe4j。
    第一種方法:使用bat文件啟動。新建文本文檔HtmlFrame.txt,輸入代碼:
    @echo off                  
    set classpath
    =.;jre6\lib\dt.jar;jre6\lib\tools.jar  
    set path
    =jre6\bin                                    
    start javaw 
    -classpath HtmlFrame.jar com.pengo.main.MenuTest
    保存文件,并把文件名改為HtmlFrame.bat,現在只要把整個HtmlFrame文件夾復制到其它沒有裝jre的機器(window系統),雙擊HtmlFrame.bat都能運行。為了下一步安排包的制作,把bar轉成exe,借助BatToExeConverterSetup(一個把bat轉成exe的工具)把HtmlFrame.bat轉成HtmlFrame.exe。

    第二種方法:使用 exe4j 把jar轉成exe, 注意:exe4j 只能把jar轉變成 exe,它并不能把整個java程序的文件(例如jre)打成一個 setup.exe 安裝包。下邊是它的使用說明:
    第1步,默認即可,直接點擊next。


    第2步,選擇"JAR in EXE",點擊next


    第3步,上面是項目名稱,可隨便填寫,下面一個是把jar轉成exe文件后,exe文件的輸出目錄(建議和原jar路徑一致):


    第4步,HtmlFrame.jar是GUI程序,所以選第一個,Executable name是生成的exe文件的名字,Icon File可以選擇是這個exe文件的圖標


    第5步,單擊綠色的"+"號,在彈出的窗口中點Archive,然后找到HtmlFrame.jar,"OK"后返回,在下面的Class Path里就出現jar文件路徑后,再在上面Main Class欄內點擊找到main()方法所在的類,這一步即算完成:




    第6步,確認系統的JRE版本,上面填個1.4,下面填1.6:


    上邊配置的程序只能在安裝有JRE的機器上執行,但發布時要考慮用戶的機器上是否安裝有JRE,總不能發布一個程序還要用戶自己安裝個JRE,下面為將要生成的exe指定jre路徑,在這里單擊advanced options,選擇search sequence。先把Search Sequence列表內所有選項刪除,再點擊綠色"+",Entry Type選擇Directory,再在下邊的路徑選擇中選擇HtmlFrame2\jre6,


    單擊ok后,再從圖中單擊advanced options,并選擇preferred VM,在彈出的窗口中選擇client hostspot VM,單擊next按鈕繼續:


    第7步,設置程序的啟動畫面,單擊next


    第8步,設置提示消息的語言,單擊next


    第9步編譯

    第10步,完成


    點這個看到效果了:

    使用exe4j把jar轉成exe后,原來的HtmlFrame.jar可以刪除。只保留生成的exe就可以了。

    至此,jar轉exe的工作已經完成。

    3.精簡jre
    整個HtmlFrame2\jre6未壓縮前,大約是100M左右,如果把它也放進安排包,那么整個安排包的體積將會很驚人,下面對jre進行精簡。
    進入jre6目錄,jre6目錄內,除了bin和lib兩個文件夾外,其它所有文件都可以刪除;
    進入jre6\bin,隨便刪除一個文件,雙擊HtmlFrame.exe,如果能運行,那么這個文件就是可以刪除的,如果不能運行,就把這個文件還原回去。通過這個方法清理后bin和lib里面的文件,體積大概能減一半。
    進入jre6\lib,你會發現rt.jar這個文件,大概40M,這是Java基礎類庫文件,里面有幾千個.class類文件,但其實許多.class在程序里并未使用。先用WinRar解壓rt.jar,隨便刪除rt文件夾里面的文件,再用WinRar把rt文件夾內的其它文件壓縮成一個zip格式文件,把zip后綴改成jar,放回jre6\lib中,雙擊HtmlFrame.exe,如果能運行,則是可以刪除,不能運行,就把類還原回去,再重復上邊的操作。這個方法精簡jre會比較累,不過這是我目前找到的最有用方法了。
    關于精簡rt.jar的方法,網上也有一些工具如:GreenJVM等,可以直接精簡rt.jar,可以把rt.jar體積減少到3M左右。不過本人用這些工具精簡出來rt.jar未試過可以運行,估計是漏掉一些class。
    另外可以在dos下使用命令:
    java -jar -verbose:class HtmlFrame.jar >>class.txt  把用到的class輸出一個txt文件中,再對比進行刪除。
    網上也有人提供一些精簡過的jre,需要的,可以自己上網找下。

    4.使用inno setup把整個HtmlFrame程序制作成setup.exe安排包。inno setup是一個免費的、使用非常簡單的安排包制作工具,本篇文章使用的是inno setup簡體中文版本。有興趣的,也可以使用其它安裝包制作工具。隨便提一下另一個專門針對java程序的安裝包工具install4j,假如在步驟2中沒有給程序指定jre,install4j可以為程序綁定一個jre到安排包中。
    本篇使用的inno setup簡體中文版本。啟動inno setup,選擇文件→新建,
    第1步,inno setup的腳本歡迎向導


    第2步,配置應用程序基本信息


    第3步,應用程序文件夾信息


    第4步,選擇應用程序文件,主執行文件選擇HtmlFrame.exe;其它應用文件需要把這個程序的相關資源文件和jre也添加進去,我這里所有相關的文件都放進HtmlFrame2文件夾內,因些直接“添加文件夾”選擇HtmlFrame2,"其它應用程序文件"列表內所有的文件都將會被打包到setup.exe文件內。




    第5步,設置應用程序圖標


    第6步,設置安裝期間相關的顯示文件


    第7步,安裝語言


    第8步,編譯輸出文件名指安裝包的文件名,如輸入setup,生成的安裝包將為setup.exe;編譯輸出文件夾指生成的安裝包setup.exe的路徑;安裝程序圖標文件指安裝包setup.exe的文件圖標;


    之后的直接點“下一步”,在出現立即編譯新的腳本提示時,點擊“確定”進行編譯。


    編譯完成后將會在“編譯輸出文件夾”生成一個setup.exe文件。


    整個安排包的制作過程到此已經完成,現在可以把setup.exe發給其它人安裝使用。

    附件是我按上邊步驟制作出來的安裝包,需要的可以下載看下效果:
    附件: setup.exe.rar

    評論

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-12 16:45 by highkay
    可以考慮用proguard精簡不需要的class,不過反射處理起來很麻煩。

    # re: 為java桌面程序制作安裝向導程序[未登錄]  回復  更多評論   

    2010-03-14 00:10 by zhrb
    不錯,收藏一下

    不過jar文件在裝有虛擬機的電腦上不是可以直接點擊運行嗎?

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-14 11:20 by pengo
    @zhrb
    在裝有虛擬機的電腦上雙擊jar是可以直接運行的.

    寫這篇文章主要是考慮在沒有虛擬機的電腦上運行jar.

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-14 12:33 by 火星漁者
    那個啟動時的log4j的對話框能去掉嗎?

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-15 09:33 by pengo
    @火星漁者
    那個啟動時的log4j的對話框能去掉嗎?

    哪里來的log4j對話框,我沒見到有。

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-17 12:41 by 火星漁者
    @pengo

    對不住,說錯了,是exe4j的對話框.(說順嘴了...)
    就是當你的程序啟動時的對話框.
    見這里:http://cid-6d09e453706901fc.skydrive.live.com/self.aspx/.Public/exe4j.jpg

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2010-03-17 22:56 by pengo
    因為你的exe4j未注冊,所以才會有這個對話框.

    # re: 為java桌面程序制作安裝向導程序  回復  更多評論   

    2011-06-22 15:58 by 江南胡楊
    終于找到這篇文章了!謝謝!
    主站蜘蛛池模板: 免费A级毛片无码A∨男男| 亚洲第一成年免费网站| 亚洲第一区精品观看| 免费毛片a在线观看67194| 成全视频在线观看免费| 污视频网站在线免费看| 亚洲乱亚洲乱妇24p| 亚洲一级毛片免费在线观看| 亚洲国产成人久久精品影视| 久久亚洲精品无码播放| 免费看国产精品麻豆| 女性无套免费网站在线看| 久久www免费人成看片| 最近中文字幕大全免费视频| 在线播放免费人成毛片乱码| eeuss影院ss奇兵免费com| 日日躁狠狠躁狠狠爱免费视频 | xvideos永久免费入口| 久久亚洲中文无码咪咪爱| 67194在线午夜亚洲| 亚洲精品永久www忘忧草| 亚洲精品高清视频| 久久综合日韩亚洲精品色| 亚洲一区AV无码少妇电影☆| 亚洲一级Av无码毛片久久精品 | yellow视频免费看| 国产成人无码免费网站| 丁香六月婷婷精品免费观看| 日日摸夜夜添夜夜免费视频 | 无码不卡亚洲成?人片| 日本免费人成黄页在线观看视频| 成人毛片视频免费网站观看| 青苹果乐园免费高清在线| 97无码免费人妻超级碰碰碰碰 | 噜噜综合亚洲AV中文无码| 老司机亚洲精品影院在线观看 | 狠狠综合久久综合88亚洲| 在线观看国产区亚洲一区成人| 亚洲人成网站在线观看播放| 国产亚洲精品va在线| 久久亚洲国产视频|