一鍵安裝雙擊運行——Java安裝程式製作

來源:互聯網
上載者:User

標 題: 一鍵安裝雙擊運行——Java安裝程式製作
作 者: Jason Du
時 間: 2009-3-23
原 文: http://www.blogjava.net/javapro/archive/2009/03/24/JavaAppSetup.html 

  對於Java案頭應用來說,比較煩瑣的就是安裝部署問題,如:用戶端是否安裝有jre、jre版本、jre在哪裡下載、如何用jre啟動Java應用等等。不要說剛接觸電腦的人,就算是比較熟悉電腦,如果沒有接觸過Java,面對一個Java應用,如何在Windows下啟動它,估計都會折騰半天。所以這個是導致Java案頭應用被一些人所討厭的最大原因,Java的優勢是“一次編寫,隨處運行”,跨平台特性確實很好,但並不是每個人都需要跨平台,而且有時候JVM平台或版本問題也會造成“一次編寫,到處測試”的尷尬。對於固定平台下的Java應用,最好的方式莫過於帶著JRE,讓使用者輕鬆點擊就能運行。下面我們來解決這樣的問題。

  針對windows平台,主要方法是:先將JRE進行精簡,再使用工具exe4j 來解決雙擊運行使用的問題,最後用Inno Setup打包成安裝程式, 這樣一來,我們的Java應用就和普通的windows應用程式一樣了。

本文相關下載

本教程PDF格式文檔
http://www.uushare.com/user/javapro/file/1418624
http://www.rayfile.com/files/7840998c-1824-11de-942b-0014221b798a/

本教程樣本程式
http://www.uushare.com/user/javapro/file/1418316 
http://www.rayfile.com/files/3ee1f95c-1826-11de-bcfb-0019d11a795f/

exe4j 4.2 註冊版
http://www.uushare.com/user/javapro/file/1418327
http://www.rayfile.com/files/c56bebba-1826-11de-9b55-0019d11a795f/

Inno Setup 漢化增強版 + ISTool漢化 + 反編譯套裝 + ISFD介面設計漢化
http://www.uushare.com/user/javapro/file/1418305
http://www.rayfile.com/files/95c91dd9-1826-11de-89b1-0019d11a795f/


一、精簡JRE

  JRE6預設安裝大小大約90M,而一般程式只有幾M甚至幾百K,帶JRE運行,感覺非常不合理,分發與網路傳輸過程也會大受影響。關於JRE的精簡參照下面幾篇相關文章:

Java程式發布之jre篇
http://www.blogjava.net/gdws/archive/2006/12/25/89898.html

如何製作最小的RCP程式壓縮包(包含JRE)
http://www.eclipseworld.org/bbs/read-cec-tid-5777.html

讓Java程式帶上精簡的jre(附工具)
http://glemir.xplore.cn/archives/200

JRE極限精簡探求手冊[1]——精簡一個Swing的即時戰略遊戲
http://cping1982.blog.51cto.com/601635/129630

Java應用——精簡JRE體積的小工具
http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx

JVM rt.jar 精簡工具圖形外殼 0.1
http://www.blogjava.net/beansoft/archive/2008/12/19/247321.html

可以運行 RCP/Swing 的迷你JRE 6(3.75MB)
http://www.blogjava.net/beansoft/archive/2008/01/18/176353.html

可以運行SWT的精簡版JRE 1.4.2_04, 壓縮後僅1.3MB
http://www.blogjava.net/beansoft/archive/2007/03/07/102381.html

  總得來說JRE精簡是一個比較複雜的工作,如果不清楚某部分的功能不要輕易進行刪減,否則可能產生一些未知的錯誤。pack200壓縮公用程式在對某些重新打包過的rt.jar檔案壓縮時會產生錯誤,如果使用的話一定要注意控制台的輸出資訊。

二、使用exe4j產生exe可執行檔

  下面是我的一個完整Java樣本程式 —— TestProcessBar。可以看到樣本程式已經附帶了jre , 下面先使用exe4j給它製作一個exe可執行檔(即圖中的TestProcessBar.exe),並指定我們內建的jre 。


 
以下是exe4j的啟動介面,點擊Next開始建立設定檔。
 

接著選擇要建立的exe檔案類型,在這裡我們選擇第一個,這樣其實是為程式建立一個可以雙擊啟動並執行啟動器,可以保證程式仍具有跨平台的特性。如果選擇第二個,可以把程式完全編譯成exe檔案,可以更好的保護你的程式不被反編譯。

接下來設定程式的短檔案名稱,源檔案夾路徑(可以使用exe4j工程檔案的相對路徑。這裡我的exe4j檔案儲存在launcher目錄下,所以使用的源路徑為[..],即上一級目錄),以及要產生的exe檔案的存放目錄,exe存放目錄相對路徑為源檔案夾,這裡我把它指定為當前源檔案夾。

接下來,可以給我們即將產生的exe檔案起一個名字,如我的“TestProcessBar.exe”,還可以給它指定一個ico類型的表徵圖,其它按預設就可以了,:


 
這裡我們還可以為要產生的exe檔案附加一些資訊

接下來的這一步,我們需要把程式中所用到的類路徑添加上去。然後指定程式的啟動類,其它如果沒有必要的話,則按預設即可,點擊+號添加類路徑:


 
基本上我們所需要用到的jar檔案都要添加上去,可以逐個添加上去,也可以添加整個檔案夾或者使用系統內容變數,為了使程式能夠隨處運行,強列建議使用相對路徑,並且不要使用環境變數。添加好類路徑之後回到上一步去選擇"Main Class"即可。

接下來先選擇我們的程式所需要的jre版本, 然後便是選擇我們內建的jre了,這一步不是必須,但是為了更好的分發程式,我們內建了jre, 所以有必要把我們內建的jre指定為首選的運行環境,選擇Search sequence


 
預設情況下程式會去系統的註冊表,環境變數及相關的目錄尋找jre,因為我們只需要內建的jre,所以這裡我把預設的選項移除了(如果覺得有必要的話可以把預設的選項放在內建jre選項的後面,不刪除),然後添加我們自己的jre所在的目錄路徑,點+號開始:


 
這裡還是建議使用相對的目錄路徑:

指定jre所在的目錄,

最後我的jre目錄路徑就是這樣的:.\jre


 
下面這一步啟動畫面,有興趣的可以自已設定一下。


 
程式最終產生了這個執行檔案: TestProcessBar.exe
現在使用它,已經可以正常利用我們內建的jre啟動程式了,但是整個程式仍有近19M的大小。
這時候打個壓縮包,已經可以進行發布了。但是為了更大的壓縮,並製作更加方便易用的程式,下面我們使用Inno Setup進行壓縮並製作一個安裝包。

三、使用Inno Setup為程式製作打包安裝程式

安裝後啟動指令碼嚮導,: 
 

這裡指定程式的開機檔案,即剛才用exe4j建立的exe檔案。然後將整個程式目錄都包含進去就可以了(這裡因為程式中有一些exe4j和inno setup的工程檔案,故有所選擇),接下來的基本上一直按下一步就可以了,其中要設定一下安裝程式的輸出目錄,直到指令碼嚮導完成

然後執行該指令碼即可:

然後找到Inno Setup的輸出目錄,就可以看到編譯輸出後的安裝包了,如:setup.exe
大小已經壓到了6.38M。
 

利用這個就可以快速輕鬆的安裝你的Java案頭應用了。
 

 

四、總結
  總體來講,我們的目的是為了讓我們編寫出的程式更加的方便易用。通過以上的學習,現在我們已經可以製作出可雙擊運行、不用使用者另裝jre的、簡單易用的程式安裝包。大家可以對jre精簡、exe啟動器的製作、打包安裝進行更深入的學習。本教程中的工具只是做一個拋磚引玉,還有很多類似功能的工具有待大家去研究,最後,希望大家能夠製作出屬於自己的簡單明快的一鍵式Java程式。
原文連結:http://www.blogjava.net/javapro/archive/2009/03/24/JavaAppSetup.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.