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

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

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

    Feeling

        三人行,必有我?guī)熝?/p>

       ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評(píng)論 :: 0 Trackbacks
    Java應(yīng)用定制工廠(以下簡(jiǎn)稱為JCB,Java Customization Builder)是一個(gè)針對(duì)Java輕量級(jí)桌面應(yīng)用進(jìn)行精簡(jiǎn)優(yōu)化的小工具,使用它可以精簡(jiǎn)你的jar包,并自動(dòng)生成一個(gè)精簡(jiǎn)的JRE,也可以使用它生成一個(gè)Exe啟動(dòng)引導(dǎo)程序,并且能夠?qū)δ愕腏ava應(yīng)用自動(dòng)做Pack200和Unpack200處理。使用本工具定制的Java桌面應(yīng)用通常不會(huì)超過10M(包含JRE),SWT客戶端程序相對(duì)于Swing客戶端程序更小,一般不會(huì)超過5M。

    JCB是一個(gè)Java應(yīng)用,所以目標(biāo)機(jī)器上必須安裝1.5以上版本的JDK用以啟動(dòng)JCB,但是JCB可以用來精簡(jiǎn)1.4版的JRE,并且JRE1.4精簡(jiǎn)后的體積遠(yuǎn)小于1.5以上的版本。

    1.新建JCB項(xiàng)目
    精簡(jiǎn)JRE的步驟比較繁瑣,有可能精簡(jiǎn)失敗,為了不重復(fù)之前的步驟,JCB提供一個(gè)項(xiàng)目文件用來保存精簡(jiǎn)配置信息,擴(kuò)展名為jcprj。這里我們創(chuàng)建一個(gè)項(xiàng)目,名為JCB


    Wizard需要輸入一個(gè)工程名和指定工程位置,至于下面的應(yīng)用程序位置和定制JRE位置由JCB自動(dòng)指定,這兒顯示出來僅供參考。

    此時(shí)最好Ctrl+S保存一下項(xiàng)目,否則退出后你之前的配置信息會(huì)全部丟失,因?yàn)槟悴]有制定一個(gè)可用的項(xiàng)目配置文件。

    2. 配置JCB項(xiàng)目


    首先指定項(xiàng)目需要的jar文件,然后依次選擇項(xiàng)目的main class,啟動(dòng)路徑默認(rèn)為空,一般來說無需指定。然后設(shè)定應(yīng)用程序參數(shù)和虛擬機(jī)參數(shù)。最后選定需要精簡(jiǎn)的JRE,JCB當(dāng)前支持1.4-1.7版本的JRE,未來可能會(huì)支持更高版本的JRE。

    右下角有2個(gè)單選按鈕:全部重新運(yùn)行和增量運(yùn)行。全部重新運(yùn)行就會(huì)放棄之前的運(yùn)行結(jié)果,增量運(yùn)行就是會(huì)保留以前的運(yùn)行結(jié)果。

    然后點(diǎn)擊“以Verbose模式運(yùn)行”按鈕。Verbose模式運(yùn)行Java程序,會(huì)顯示JVM加載的全部類信息,JCB需要這些類信息進(jìn)行JRE的精簡(jiǎn),所以請(qǐng)盡可能的把應(yīng)用所有的功能盡可能的跑一遍,跑的越全面,導(dǎo)致精簡(jiǎn)出錯(cuò)的可能性就越低。



    Verbose運(yùn)行結(jié)果,這個(gè)頁面的顯示信息僅供參考,無實(shí)際用處。

    3. 分析項(xiàng)目的類依賴項(xiàng)


    分析類依賴模式有2個(gè)選項(xiàng):重新完全分析和增量分析。完全分析會(huì)花費(fèi)較多的時(shí)間。當(dāng)使用verbose模式增量運(yùn)行后,可以使用增量模式分析類依賴項(xiàng),這樣可以節(jié)約大量的時(shí)間。類依賴分析會(huì)反編譯所有運(yùn)行的類,分析類引用關(guān)系,但是無法獲取Class.forName這類動(dòng)態(tài)類加載信息,所以需要Verbose模式運(yùn)行的盡量全面,以避免這些動(dòng)態(tài)加載的類的缺失。

    為什么需要分析類依賴關(guān)系呢?因?yàn)椴煌牟僮飨到y(tǒng),不同的硬件配置,JRE可能會(huì)采取策略模式加載不同的類,或者一些異常,Verbose模式一般不會(huì)加載,這樣換個(gè)硬件環(huán)境,僅僅使用Verbose模式的類可能會(huì)導(dǎo)致ClassNotFound這樣的異常,導(dǎo)致Java程序崩潰。


    4. 精簡(jiǎn)JRE


    精簡(jiǎn)JRE有兩種模式:使用Verbose運(yùn)行結(jié)果和使用類依賴分析結(jié)果。前者只包含Verbose分析出來的類,精簡(jiǎn)出來的JRE包很小,但是基本不具備跨平臺(tái)性。所以一般來說推薦選擇后者。

    如果你的程序包含Swing的客戶端,并且比較復(fù)雜的話,最好選中包含Swing選項(xiàng)。因?yàn)镾wing的設(shè)計(jì)完全是動(dòng)態(tài)化的加載,全部使用Class.forName方式,類依賴分析對(duì)Swing是無效的。當(dāng)然選中該選項(xiàng)后,JRE的體積會(huì)增加許多。比較好的解決方案,是使用SWT替代Swing進(jìn)行開發(fā),或者盡量把你的程序跑全面,包括各種異常界面都跑出來。

    右下角有兩個(gè)按鈕,是用來自定義類和資源文件的,比如移除JAR包的MD5文件或者無用的文件。或者測(cè)試運(yùn)行發(fā)現(xiàn)ClassNotFound異常,手動(dòng)把缺少的類加進(jìn)去,然后JCB會(huì)自動(dòng)運(yùn)行增量類依賴分析加載所有可能需要的類。

    選擇左上角的“精簡(jiǎn)Jar包”按鈕,就可以對(duì)JRE進(jìn)行精簡(jiǎn)了,精簡(jiǎn)完畢后可以點(diǎn)擊“查看精簡(jiǎn)結(jié)果”按鈕進(jìn)行查看。

    5.定制JRE


    上圖顯示了JRE精簡(jiǎn)結(jié)果,JCB會(huì)自動(dòng)分析所有的Class,生成精簡(jiǎn)版JRE,包括需要的JAR,DLL和資源文件。一般來說精簡(jiǎn)出來的JRE,普通功能都能正確完成,但是不排除有些功能不能正常使用,比如缺少某個(gè)資源文件或者DLL,需要手工添加。

    為了保證精簡(jiǎn)的正確性,你需要進(jìn)行運(yùn)行測(cè)試,這一步是必須的,而且最好和Verbose運(yùn)行模式一樣,把所有的功能都跑一遍,確認(rèn)精簡(jiǎn)無誤。



    如果測(cè)試運(yùn)行有誤的話,請(qǐng)根據(jù)運(yùn)行錯(cuò)誤報(bào)告進(jìn)行分析,如果缺少類,請(qǐng)使用Verbose模式重新運(yùn)行相應(yīng)的功能,或者在步驟四手工添加需要的類,然后重新生成依賴的JRE。如果缺少相關(guān)的DLL或者資源文件,也請(qǐng)手工添加,并且取消步驟四的“清理工作區(qū)選項(xiàng)”,否則每次精簡(jiǎn)JRE都需要重新手工添加。

    到此為止,精簡(jiǎn)JRE部分就算全部完成了,你最好使用Ctrl+S保存一下結(jié)果,以避免下次重做項(xiàng)目。

    JCB項(xiàng)目下載地址:http://www.sourceforge.net/projects/jcb

    評(píng)論

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2013-03-03 17:44 CYB
    先頂再看~~  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一)[未登錄] 2013-03-04 13:11 zhou
    頂上。、。、。、。、、。、。、  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一)[未登錄] 2013-03-04 13:17 Eric
    很好很強(qiáng)大啊~~~~
      回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一)[未登錄] 2013-03-08 17:05 test
    這種方式存在很多風(fēng)險(xiǎn),試用過一次.放棄了!  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2013-03-14 17:23 oop
    精簡(jiǎn)JRE時(shí)報(bào)錯(cuò)了。
    ava.lang.NullPointerException: entry
    at java.util.zip.ZipFile.getInputStream(ZipFile.java:340)
    at java.util.jar.JarFile.getInputStream(JarFile.java:409)
    at net.sf.feeling.java.customization.engine.SingleJarPacker.copyData(SingleJarPacker.java:141)
    at net.sf.feeling.java.customization.ui.JarSlimPage$19.run(JarSlimPage.java:1222)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

      回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2013-04-08 14:30 lpdx111
    精簡(jiǎn)的jre ,無法用 cmd java -jar 運(yùn)行。  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2013-04-09 11:01 三人行,必有我?guī)熝?/a>
    @lpdx111

    manifest.mf 的信息丟失,這應(yīng)當(dāng)是個(gè)bug, Thanks.
      
    回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2013-08-18 16:29 haicom
    博主,請(qǐng)問一下那個(gè)應(yīng)用程序參數(shù)和虛擬機(jī)參數(shù)怎么填的?  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一)[未登錄] 2014-03-25 10:36 joker
    @oop
    遇到跟你一樣的問題了  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2015-03-15 16:56 Kissimon
    求教,我是無法運(yùn)行JCB,,提示說找不到j(luò)ava運(yùn)行環(huán)境,但是我的JDK都是正常安裝和正確配置了的。,有人遇到這種情況嗎?  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2015-03-22 17:18 陳華
    @Kissimon
    我試過,,前天就是這樣,今天重裝了系統(tǒng)再裝JDK就好了。但是還是不太懂怎樣用這個(gè)軟件。加個(gè)QQ一起學(xué)習(xí),,86967672.。。有使用過的朋友,也希望加QQ指點(diǎn)小弟。。  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一)[未登錄] 2015-07-23 09:38 leo
    @Kissimon
    你的JDK是x64的吧,這個(gè)JCB只能在x32的JRE上運(yùn)行.  回復(fù)  更多評(píng)論
      

    # re: Java應(yīng)用定制工廠使用手冊(cè)(一) 2016-03-12 16:06 Mr.sun
    @oop

    請(qǐng)問問題解決了嗎,我的也出現(xiàn)了同樣的問題  回復(fù)  更多評(píng)論
      


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


    網(wǎng)站導(dǎo)航:
     
    GitHub |  開源中國(guó)社區(qū) |  maven倉(cāng)庫(kù) |  文件格式轉(zhuǎn)換 
    主站蜘蛛池模板: 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲一区二区三区亚瑟| 暖暖日本免费中文字幕| 国产精品V亚洲精品V日韩精品 | 少妇亚洲免费精品| 疯狂做受xxxx高潮视频免费| 女人18一级毛片免费观看| 亚洲娇小性xxxx| 免费毛片在线视频| 大桥未久亚洲无av码在线| 四虎影永久在线高清免费| 男女猛烈xx00免费视频试看| 免费大片黄手机在线观看 | 国产免费内射又粗又爽密桃视频| 亚洲无码黄色网址| aa毛片免费全部播放完整| 国产亚洲精品一品区99热| 午夜无码A级毛片免费视频 | 亚洲一区二区三区免费| 亚洲精品美女久久久久99| 国产一级淫片a免费播放口| 亚洲av无码不卡| 啦啦啦完整版免费视频在线观看| 亚洲美免无码中文字幕在线| 18禁美女黄网站色大片免费观看| 亚洲精品国产成人中文| 女性无套免费网站在线看| 老司机精品视频免费| 亚洲色WWW成人永久网址| 午夜免费福利视频| 亚洲国产日韩视频观看| 亚洲国产精品成人网址天堂 | 国产成人亚洲精品狼色在线 | 国产免费区在线观看十分钟| 久久亚洲伊人中字综合精品| 国产成人精品免费视频大全麻豆| 亚洲乱码在线卡一卡二卡新区| 亚洲av无码国产精品色在线看不卡 | 亚洲毛片av日韩av无码| 三年片在线观看免费观看大全动漫 | 亚洲综合av一区二区三区|