amp@java

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            99 隨筆 :: 0 文章 :: 228 評論 :: 0 Trackbacks
          Eclipse有個功能就是把整個項目打包成一個可執行的Jar文件,里面包含了所有項目引用了的庫,如果電腦上安裝了JRE,直接雙擊就可以啟動,看起來很方便,如下圖所示:

          可以選擇把所有類庫打包進去,也就是Jar里面還包含一堆Jar:

          還可以生成ant腳本:


          生成的jar文件,可以直接通過java -jar xx.jar啟動,簡單快捷。


          然而,這樣導出來的可執行jar,啟動速度卻非常慢,這跟包的大小有關。有個項目導出來的包有40MB,結果啟動需要近一分鐘,在性能差的電腦上,甚至要幾分鐘,就是你執行完命令后,沒有任何界面顯示,但是查看任務管理器發現java進程的CPU占用率在浮動,說明正在努力啟動,過了一段時間之后界面突然顯示出來,簡直讓人崩潰??墒窃贓clipse里面運行,卻是一點就開。

          我開始嘗試縮小導出的包。但是Eclipse的導出對話框并沒有提供需要打包哪些庫的選項,都是默認把所有庫都打包進去,但是它可以生成ant腳本,可以通過編輯ant腳本的方式來減少不必要的庫。經過多次嘗試,終于把40MB的包縮成了17MB,啟動速度快了一些,但是依然需要半分鐘以上。

          后來覺得,能不能不打包直接運行呢?于是把導出來的包用壓縮軟件解壓,再把里面包含的jar包繼續解壓,最后得到一堆沒有壓縮的class文件,再通過指定classpath的方式,直接運行程序入口class,發現啟動速度和在Eclipse里面一樣,一點就開。

          打包的好處是部署簡單,只需要一個文件,但帶來的缺點實在不能忍,打散的方式部署起來稍微難一點,但是啟動速度夠快,對普通用戶來說,這個才是最重要的。

          當然,還有一種方式是像Eclipse那樣,啟動時顯示一個圖片,底下一個進度條顯示啟動進度,不過這樣也加大了工作量,而且每次都要等那進度條,實際上也很煩。
          posted on 2015-03-10 15:07 amp@java 閱讀(5143) 評論(0)  編輯  收藏 所屬分類: Java common
          主站蜘蛛池模板: 常山县| 乌鲁木齐县| 滁州市| 宝山区| 阳曲县| 太原市| 即墨市| 湖北省| 江门市| 霍山县| 固安县| 铁力市| 新和县| 望谟县| 安庆市| 金沙县| 瑞昌市| 晴隆县| 怀柔区| 平乐县| 平陆县| 桂东县| 镇原县| 荣成市| 梓潼县| 楚雄市| 同仁县| 涿鹿县| 睢宁县| 吉安县| 上杭县| 辰溪县| 江油市| 洪雅县| 贵港市| 普陀区| 军事| 遵义县| 宁陵县| 太仆寺旗| 安平县|