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

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

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

    設計java

    j2ee輕量級框架,IMVC,IORM && web網絡游戲

    抽取最小的jre--BuildJre項目開啟

        java在桌面軟件的失利,很大程度上取決與她運行環境的陪著復雜度,還有隨時帶的一個龐大的jre環境。有時候我們并不需要jre中全部的類庫支持,我們只需要一些對我們項目有用的類庫,能否有一種通用的方法來抽取jre中的這些對我們有用的部分呢?google了下找到了幾篇文章介紹這個的。主要就是用verbose參數運行jar,然后觀察java載入了多少java類,然后手動或者寫個程序自動的吧這些類打包和jvm打包為一個全新的jre環境。這種方法是可行的,但是卻是不通用,而且這種方法還有一個很大的弊端,當有些類導入到我們項目中,但是在verbose的時候沒有用到(比如一些異常類),我們就不會導入,最終可能在發布運行的時候就用到了,這樣可不妙。那么是否還有其他方法來瘦身jre環境呢,然后通過隨身附帶jre發布java程序?答案一定是有的,我已經著手在開發這個應用,我把她起名為BuildJre。
        一,可行性分析(我們加上在win系統下):
           java.exe是java運行的一個入口程序,當我們鍵入明了 java className的時候,首先啟動都是這個程序,然后這個程序回去查找可用的jre庫,一般是先搜索本目錄和父親目錄,如果接著搜索環境變量,判斷是否為jre的依據是,首先java.exe查找懷疑目錄(比如父目錄)的bin下有沒有java.dll,如果找到,那么他就判定這個是jre目錄然后查找lib\i386下的jvm.cfg,最后更具這里面的參數去啟動bin\client或者bin\server下的jvm.dll,這個才是真正的java虛擬機,到這里,java.exe把控制權全部交給jvm,然后jvm就初始化,分配內存等,運行程序了,運行程序期間導入的jdk包,都在jre目錄下的lib\rt.jar下。
           說道這里,我們發現,其實不用環境變量,只要有jre環境就能運行java程序,這使得我們更加堅定java程序也可以桌面化,因為他也是可以不用配置那么麻煩的環境變量直接運行的。再回到瘦身來,剛才說了,jdk中所有的以來包全部位于jre\lib\rt.jar下,我們要廋的就是這個,40多M的rt,我們通過類依賴抽取,對于一個普通的java程序,預計可以廋到小于10M,然后配合java.exe,java.dll,等幾個小的程序,預計目標是平均廋身到15M以內。

        二,實施思路,用verbose方法不通用,不能在程序內部抽取jre,而且還有可能遺漏依賴項,不足提倡。我們架設有一個標志的依賴說明庫,比如ArrayList這個類依賴的所有包都一一對應,那么我們如果在程序里import ArrayList的話,那么我們可以迅速抽取相關的依賴包,然后在整個項目的所有import中去重復,不就ok了?現在的問題在于:
              1,不是所有的jdk包都需要import的,比如java.lang下就不用import
              2,有些jdk內部類在同一個包下不用寫import也一樣依賴。
              3,計算jdk內部依賴估計要很長實踐,因為文件很多,依賴很復雜。
        這些問題基本上都有解決方法,我已經開始著手解決。

        希望有一天,我們的java項目發布,只要帶上10M的小型環境,也不用配置環境變量,雙擊,ok。。哈哈


    --InstantMVC:j2ee輕量級mvc框架

    posted on 2008-08-05 20:59 剎那 閱讀(2030) 評論(2)  編輯  收藏 所屬分類: java

    Feedback

    # re: 抽取最小的jre--BuildJre項目開啟 2008-08-06 09:33 QQ1895

    8CUO,期待能早日用上!  回復  更多評論   

    # re: 抽取最小的jre--BuildJre項目開啟[未登錄] 2009-05-07 18:08 javaLover

    完全支持樓主想法,爭取樓主早日實現。實現了,發給小弟一個哈。642276106@qq.com  回復  更多評論   



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


    網站導航:
     
    主站蜘蛛池模板: 亚洲一级大黄大色毛片| 日韩精品成人亚洲专区| 一级毛片成人免费看免费不卡| jizz在线免费观看| 国内一级一级毛片a免费| 国产精品视频免费| 中文字幕亚洲免费无线观看日本| 免费精品久久久久久中文字幕 | 午夜国产大片免费观看| 在线观看91精品国产不卡免费| 日本特黄特色免费大片| 在线观看亚洲免费| 亚洲AV无码一区二三区| 亚洲人午夜射精精品日韩| 亚洲中文久久精品无码ww16| 国产AV无码专区亚洲AV男同| 亚洲av丰满熟妇在线播放| 亚洲精品无码久久毛片波多野吉衣| 666精品国产精品亚洲| 亚洲一卡2卡3卡4卡国产网站| 亚洲国产精品无码久久| 国产偷国产偷亚洲高清在线| 暖暖免费中文在线日本| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲国产精品成人久久蜜臀| 久久亚洲2019中文字幕| 国产av无码专区亚洲av桃花庵| 色噜噜综合亚洲av中文无码| 精品亚洲AV无码一区二区三区 | 亚洲日产韩国一二三四区| 亚洲a一级免费视频| 亚洲三级高清免费| 黄色大片免费网站| 鲁丝片一区二区三区免费| 无码国产精品一区二区免费 | 性做久久久久久久免费看| 日韩精品人妻系列无码专区免费| 久久精品无码专区免费| 免费人成又黄又爽的视频在线电影| 成人网站免费大全日韩国产| 无遮挡国产高潮视频免费观看|