對於作Java案頭應用來說,比較煩人的就是安裝部署問題,用戶端是否安裝有jre、jre版本問題、jre去哪下載、如何用jre啟動你的Java應
用?不要說剛接觸電腦的人,就算是比較熟悉電腦,如果沒有接觸過Java,面對一個Java應用,如何在Windows下啟動它,估計都會折騰半天。如果
不是因為這個問題,Java在我的眼裡算是最完美的語言了,也是我最喜愛的語言。
所以我認為這個是導致Java案頭應用被一些人所討厭的最大原因,Java的優勢是“一次編寫,隨處運行”,跨平台特性確實很好,但並不是每個人都需要或都想要跨平台,而且有時候JVM平台或版本問題也會造成“一次編寫,到處測試”的尷尬。
最好的方式莫過於帶著JRE,讓使用者輕鬆點擊就能運行。下面我們來解決這樣的問題,有什麼好的建議或方法請其他朋友多多指教或補充!
針對windows平台,讓使用者一鍵式安裝,雙擊使用, 使用工具exe4j + Inno Setup, 這兩個工具都可以在網上找到,不熟悉的可以多搜搜,使用起來也不難。
帶著JRE運行,JRE的大小應該是最讓人頭疼的,我預設安裝的jre6大小達到80M,而程式只有200-300k左右,感覺非常不合理,分發與網路傳
輸過程也會大受影響!為瞭解決這個問題我一直在網路上搜尋“瘦身版”的JRE,無意中搜到了Beansoft老師介紹的一篇關於迷你JRE的文章,相關的
JRE下載後解壓約14M左右,試用了一下,相對於我的應用程式缺少了一些類檔案,關於部分xml操作類,及swing案頭應用程式框架相關連的部分類也找不到,
最後借鑒了一下,自己把一個完整的JRE從80M瘦到了38M,去除了很多不需要的類檔案,當然,如果耐心一點還可以再瘦下去,再抽掉一些類檔案。
在這個基礎上再配合Inno Setup這個安裝包製作工具,最後把整個程式從40M壓到了8M,下面看看關於整個操作過程,關於JRE的瘦身有些煩瑣就不寫了,而且SUN的JRE瘦身計劃也在進行,相信很快會有更小的瘦身版JRE推出,自己沒有必要再去費神。
下面是我的一個完整的Java程式 —— MyLoading
可以看到已經附帶了jre1.6 , 下面先使用exe4j給它製作一個exe執行檔案(即的MyLoading.exe),並指定我們內建的jre1.6 。以下是exe4j的啟動介面,點擊下一步開始建立設定檔。
接著選擇類型,我們選擇第一個,這樣可以保證程式仍具有跨平台的特性。如果選擇第二個,可以把程式完全編譯成exe檔案,可以更好的保護你的程式不被反編譯。
接下來設定你的程式的短檔案名稱,源檔案夾路徑(如我的:E:/MyLoading),以及要產生的exe檔案的存放目錄,exe存放目錄必須指定到源檔案夾下,這裡我把它指定為E:/Myloading的根目錄下。
接下來,可以給我們即將產生的exe檔案起一個名字,如我的“MyLoading”,還可以給它指定一個ico類型的表徵圖,其它按預設就可以了,:
接下來的這一步,我們需要把程式中所用到的類路徑添加上去。然後指定程式的啟動類,其它如果沒有必要的話,則按預設即可,點擊+號添加類路徑:
基本上你所需要用到的Jar檔案都要添加上去,可以逐個添加上去,也可以添加整個檔案夾或者使用系統內容變數,為了使你的程式能夠隨處運行,所以還是強列
建議你使用相對路徑,並且不要使用環境變數。添加好你的類路徑之後回到上一步去選擇好你的"Main Class"即可。
接下來先選擇我們的程式所需要的jre版本, 然後便是選擇我們內建的jre了,這一步不是必須,但是為了更好的分發程式,我們內建了jre, 所以必須把我們內建的jre指定為首選的運行環境,選擇:
Search sequence
預設情況下程式會去系統的註冊表,環境變數及相關的目錄尋找jre,因為我們只需要內建的jre,所以這裡我把預設的選項移除了,然後添加我們自己的jre所在的目錄路徑,點+號開始:
這裡還是建議使用相對的目錄路徑:
指定jre所在的目錄,
最後我的jre目錄路徑就是這樣的:./jre1.6
下面這一步只是簡單的給程式添加一個啟動畫面,然後按預設下一步下一步就可以了。
程式最終產生了這個執行檔案: MyLoading.exe
現在使用它,已經可以正常利用我們內建的jre啟動程式了,但是整個程式仍有40M的大小.
現在我們使用Inno Setup進行壓縮並製作一個安裝包。
Inno Setup的下載安裝請到網上搜尋,安裝後啟動指令碼嚮導,:
整個過程很簡單:
這裡指定你的程式的開機檔案,即剛才用exe4j建立的exe檔案,並將你的整個程式目錄都包含進去就可以了,接下來的基本上一直按下一步就可以了,直到指令碼嚮導完成,
然後執行該指令碼即可:
然後找到Inno Setup的預設輸出目錄,就可以看到編譯輸出後的安裝包了,如:MyLoading安裝.exe
大小已經壓到了8.86M。
利用這個就可以快速輕鬆的安裝你的Java案頭應用了。