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

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

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

    Feeling

        三人行,必有我師焉

       ::  :: 新隨筆 :: 聯系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks
    經過一年時間斷斷續續的開發,終于能夠對“Java應用定制工廠”這個項目Release了。

    Java應用定制工廠(以下簡稱為JCB,Java Customization Builder)是一個針對Java輕量級桌面應用進行精簡優化的小工具,使用它可以精簡你的jar包,并自動生成一個精簡的JRE,也可以使用它生成一個Exe啟動引導程序,并且能夠對你的Java應用自動做Pack200和Unpack200處理。使用本工具定制的Java桌面應用通常不會超過10M(包含JRE),SWT客戶端程序相對于Swing客戶端程序更小,一般不會超過5M。

    精簡JRE網上已經有很多文章了,但是實際操作上卻有一個嚴重的弊端,很容易拋出
    NoClassDefDoundErr , 這個Error基本上是致命的,一旦發生,Java程序就會崩潰。通常產生這種Error是由于Verbose模式下運行沒有考慮到的異常狀況導致的,所以Verbose模式得到的結果十分的不可靠,需要對其作進一步的加工。JCB的處理手段是針對Verbose結果進行反編譯處理,找出這些class文件的依賴關系,并將這些被依賴的類也做打包處理,這樣就能杜絕95%以上的
    NoClassDefDoundErr錯誤。這里需要考慮的是Java的類動態加載機制,通過這種機制加載的類只能用Verbose模式獲得,SWT中沒有使用這種方式加載class,但是Swing,JDBC,XML框架,Eclipse框架等一些結構比較巧妙的框架中則大量運用了動態加載,所以如果你確認你的代碼中包含了這些框架,那么你就老老實實把基本功能都跑一遍吧。

    得到了Java應用程序需要的class文件之后,就需要對JRE進行精簡的處理。JCB會對常用的一些Class作分析,判斷那些dll庫是必須的,一般來說輕量級的Java應用,JCB完全能做到自動處理,JCB并沒有處理重量級Java應用的機制,比如RMI之類。不過JVM一般都會對缺少的庫做出提示,你也可以根據這些提示將缺少的dll添加到精簡后的JRE中。

    現在Java應用的Jar包和JRE都被精簡了,下一步就是生成可以執行的exe文件了,大家常用的軟件是exe4j,不過JCB提供了一些比exe4j更強大的功能。JCB生成的exe可以把外部參數通過exe傳遞給Java應用,這樣你就可以制作一個關聯擴展名的Java應用程序了。JCB還可以針對Java應用做Pack200處理,Pack200能夠極大的壓縮jar文件,為什么JRE安裝包只有16M左右,而一個rt.jar都有40多M,原因就在于此。JCB是通過Au3腳本來生成exe文件的,你也可以自己修改JCB生成的Au3腳本,定制你自己需要的行為。

    默認情況下JCB生成的exe會首先讀取注冊表,尋找符合條件的JRE,優先級是JDK>JRE>自帶JRE,如果一個都沒找到,會彈出提示對話框。

    JCB下載地址:http://sourceforge.net/projects/jcb/files/JCB_1.0.0.zip/download



    PS:JCB本身就是一個JCB生成的Java應用程序。:)

    posted on 2011-12-12 16:27 三人行,必有我師焉 閱讀(6237) 評論(12)  編輯  收藏

    評論

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2011-12-12 22:16 tbw淘寶
    win都可以的噢。  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2011-12-13 19:54 蠟人
    很需要這樣的軟件,謝謝了。  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2011-12-26 17:01 wqeq
    報錯,報Can't find bundle for base name CalendarData,locale zh_CN,怎么辦呀?  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2011-12-26 21:56 三人行,必有我師焉
    @wqeq

    是軟件報錯,還是你自己生成的程序報錯?

    我測試過好幾種環境,都沒有遇到過你說的這種情況。如果是軟件錯誤,可能是你的JRE版本有問題。如果是你自己生成的程序有錯,那么考慮jre下的ext目錄里的localedata.jar是否被引用,如果被移除的話,會導致國際化失敗的問題。
      回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2011-12-28 22:33 拉風男子
    從樓主自己的介紹看,做的相當不錯,友情支持下

    在公司內使用的話,要求用戶安裝一套JRE是比較合理的要求,所以我個人采用了這樣一種方案。就是僅發布軟件的jar包,不帶JRE。然后用匯編寫了一個引導程序,該程序會到注冊表查找用戶有沒有安裝我定制的一套JRE,如果沒有,就自動從公司內網下載并安裝,因為JRE可以做成綠色版,又是內網,所以下載安裝往往十幾秒即可搞定。安裝完成后程序就可以繼續執行了。

    這樣還有一個好處,就是用戶安裝了我多個軟件的話,因為用的都是同一套我定制的JRE,實際上對磁盤空間消耗最小。并且因為不帶JRE,軟件安裝包可以做的非常小。  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2012-01-31 23:04 isml
    不錯的程序,很符合我的要求,請問是否開源?  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2012-03-23 11:59 simpleman
    今天使用了下,真的挺好用的,正好解決了我打包的要求,謝謝了。 我在使用exe4j的時候,有一個小功能,可以自動掃描某個文件夾下面的jar包,并且加載里面的類。不知道加這個功能是否很麻煩。  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序[未登錄] 2012-04-08 19:57 smile
    很漂亮的軟件!速度稍微有點慢,看上去依賴分析得很細,其實有時候并不需要這么細,也許可以加一些粗一點的選項,比方用到了swing就自動把已知的一些基礎類全加進去,只分析那些高級類的依賴關系,如果選擇“不使用swing”,則自動去掉所有swing類  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2012-05-18 11:57 jacket
    verbose 模式的時候是調用用java.exe執行程序 調試的 一切正常但打包成exe后

    exe調用的好像是javaw.exe執行程序 當我的程序運行到一個功能是 程序突然掛掉了

    初步測試是缺少class 但程序使用java.exe時就不會出現程序突然掛掉的問題

    實在是費解  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2014-01-07 20:19 路過
    軟件設計得不錯,不過生成的exe文件沒有處理jar文件,jar文件還是暴露了,不如exe4j,這樣容易被人得到源代碼,這是一個敗筆.  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2014-06-17 22:19 高陽
    作者你好,我想知道我想知道“應用程序參數:”這個怎么寫,是不是應該寫成如下格式:
    set myvar=xxxx  回復  更多評論
      

    # re: Java應用定制工廠--定制你自己的Java桌面程序 2015-05-28 20:40 sunbufu
    你好,我的電腦現在用的是java1.8,運行不了你的程序啦,:(,好不開心,這么牛叉的程序竟然用不了,好不爽啊==============================,如果可以請聯系我謝謝。784398894@qq.com  回復  更多評論
      


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


    網站導航:
     
    GitHub |  開源中國社區 |  maven倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 18以下岁毛片在免费播放| 超pen个人视频国产免费观看| 久久乐国产综合亚洲精品| 男男AV纯肉无码免费播放无码| 亚洲六月丁香六月婷婷色伊人| 青青青免费国产在线视频小草| 亚洲性无码一区二区三区| 成年在线观看免费人视频草莓| 亚洲大码熟女在线观看| 国产乱子影视频上线免费观看| 免费的黄色的网站| 亚洲老妈激情一区二区三区| 久久国产乱子精品免费女| 亚洲色av性色在线观无码| 最近的免费中文字幕视频| 亚洲AV无码一区二区三区久久精品 | 国产日产亚洲系列| 国产99视频精品免费专区| 亚洲综合一区二区| 日本一区免费电影| 久久www免费人成精品香蕉| 亚洲人成网址在线观看| 毛片免费在线播放| 一级女性全黄久久生活片免费| 亚洲女同成av人片在线观看| 久久免费看黄a级毛片| 亚洲Aⅴ在线无码播放毛片一线天| 久久精品国产亚洲Aⅴ香蕉| 久久国产高潮流白浆免费观看| 亚洲精品福利你懂| 亚洲欧洲久久av| 91精品国产免费久久久久久青草| 久久亚洲精品无码网站| 亚洲国产精品成人精品无码区| 国产精品久久久久免费a∨| 杨幂最新免费特级毛片| 亚洲第一成年网站大全亚洲| 免费一级毛片不卡在线播放| 99久久久国产精品免费牛牛四川| 亚洲AV无码国产剧情|