amp@java

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

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

          還可以生成ant腳本:


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


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

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

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

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

          當然,還有一種方式是像Eclipse那樣,啟動時顯示一個圖片,底下一個進度條顯示啟動進度,不過這樣也加大了工作量,而且每次都要等那進度條,實際上也很煩。
          posted on 2015-03-10 15:07 amp@java 閱讀(5144) 評論(0)  編輯  收藏 所屬分類: Java common
          主站蜘蛛池模板: 吐鲁番市| 班戈县| 铜川市| 桐梓县| 讷河市| 万载县| 宁夏| 东至县| 临沭县| 滦南县| 扶风县| 新乡市| 宁津县| 昌黎县| 长宁县| 行唐县| 六枝特区| 华宁县| 石景山区| 岗巴县| 南乐县| 鹤山市| 稷山县| 南充市| 旬邑县| 昌黎县| 德惠市| 奉化市| 城口县| 达日县| 庆安县| 丽水市| 岳西县| 尤溪县| 高碑店市| 突泉县| 根河市| 融水| 女性| 重庆市| 石城县|