下面的文章是介紹如何將自己編寫的swing應用程序打包為.exe的可執行程序,進而編譯為.exe的安裝程序。相信有這樣經歷的朋友肯定可以理解我為什么還要將已經編譯好的.exe程序更進一步的編譯為安裝程序,因為一般而言本機打包的是基本不會出現什么問題的,但是一旦拿到服務器上使用或者在其他機器上使用的時候很容易出現jre或者版本問題導致程序不能正常運行,那么最簡單的辦法就是讓程序自己附帶jre運行,那樣在什么地方運行他都是使用自己附帶的jre來運行,這樣就可以大大降低故障率了。
需要注意的地方,我當前使用的IDE為MyEclipse8.6,編譯環境為jdk1.6,系統編碼UTF-8
新建java Project 命名為SwingTest,選擇jre為1.6,然后直接finish
在src下建立包com.swing.test
並且在該包下新建類Start

然后書寫如下代碼:

然后右鍵 Run as-------Java Application

可以看到,這個簡單的例子是可以跑起來的

接下來將此項目導出為可執行jar,
在項目名上右鍵---Export..

然后選擇java--Runnable JAR file 然后選擇next

然后在Launch configuration下選擇當前的項目,這里顯示的格式是[包含有main函數的類名 - 項目名]
然后在下面選擇輸出文件夾,這里我們選擇Browse..
然后選擇桌面,在桌面上新建一個文件夾src1
將生成的可執行jar輸出到此文件夾

其他保持不變,finish即可
這個時候src1下面就有了可運行jar文件
=======================
接下來打開exe4j(我的版本是4.5.2,文章末尾我會附加改版本軟件下載地址),如果是未注冊的話建議注冊一下,百度exe4j注冊碼,然后點擊change license,
公司和姓名都可以隨便填,將注冊碼放入最后一行,如果不注冊會有討厭的彈框。
我這里附上一組注冊碼
A-XVK258563F-1p4lv7mg7sav
A-XVK209982F-1y0i3h4ywx2h1
A-XVK267351F-dpurrhnyarva
A-XVK204432F-1kkoilo1jy2h3r
A-XVK246130F-1l7msieqiwqnq
A-XVK249554F-pllh351kcke50
A-XVK238729F-25yn13iea25i
A-XVK222711F-134h5ta8yxbm0
A-XVK275016F-15wjjcbn4tpj
A-XVK275016F-15wjjcbn4tpj
打開后直接選擇Next
這里選擇“JAR in EXE" mode
如果選擇regular mode會導致最終的結果報java.lang.ClassNotFoundException: com.swing.test.Start

這里填寫本次相對於exe4j的項目名稱,隨意了,這時在桌面新建文件夾src2
然后這里選擇src2,這個是你EXE程序生成的文件夾。

接下來只需要在Executable name中填寫你生成好之后,后綴名為.exe的程序叫什么名字
我這里寫Start,即會生成Start.exe
其他均不改動,保持默認,下面的一項Icon File可以定義程序圖標,不能將其他圖片直接
更改后綴名后選擇,必須使用圖標軟件生成后綴名為ico的文件,或者選擇本來就是ico的文件,
這里暫且不選

然后點擊右側小加號,
Entry type選擇為Archive
Detail選擇為src1下面的start1.jar
然后ok

在Main class這里欄選擇啟動類,這里當然是com.swing.test.Start

接下來配置程序運行要求最低jre版本和最高jre版本

這個時候需要准備一個jre,之所以單獨准備jre是為了考慮有些用戶點上可能沒有jre,
也為了程序具備最高兼容性,所以我們讓我們的程序使用自己的jre
將准備好的jre文件夾放入src2文件夾
選擇下面的Advanced Options---Search sequence

默認會看到一些配置,將這些配置全部刪除,一個都不留

然后點擊右邊的加號,
Entry type選擇Directory
然后選擇src2下的jre7

結果如下

然后選擇Next--選擇VM不管,默認即可--Next--下一個界面繼續Next----

這個時候再點擊next就開始將jar打包為exe了

完成后選擇exit,彈出的框選NO

這個時候EXE程序就可以直接運行了,繼續下一步
==================
打開 Inno Setup 5(我的版本是5.5.2,文章末尾我會附加該版本的下載鏈接)

選擇 下一步

這里我只更改了”應用程序名稱“為Start,
其他信息隨自己喜好,這里暫不更改,選擇下一步

接下來的這一步不做任何更改,繼續選擇下一步

這一步應用主執行文件選擇剛剛生成在src2下的Start.exe, 然后添加文件夾,
選擇src2,會詢問你是否包含子文件夾,選擇是,包含所有文件夾,繼續下一步

這里我不做什么更改
繼續下一步

一般程序在安裝的時候都會有一些安裝提示、或者版權聲明,用戶同意才繼續安裝程序,
這里就是用來將你想要顯示的信息打包進程序,我在src1下面新建了三個文本文檔
1.txt
2.txt
3.txt
里面隨便寫一句話即可,繼續下一步

這一步默認不做改變,繼續下一步,

在桌面新建文件夾 outexe
然后將編譯器輸出文件夾選擇為outexe
其他不做改變,
對下面三個參數稍作說明:
編譯器輸出基本文件名,即本次打包后在outexe文件夾中生成的文件名
自定義安裝圖標,這里跟前面一樣,要ico文件,當然你選了就會是你這個圖標,如果你不選生成
后的圖標也不會是你在exe4j里選的圖標
安裝密碼一般不使用,設置了的話,要想安裝本程序就需要輸入安裝密碼
繼續下一步

這一步默認選中,繼續下一步

這里選擇完成

這里選擇是

這里我一般選選擇 否

現在就開始打包安裝程序了

等待一會,安裝程序就制作好了,就跟你平時見到的那些安裝程序一樣。

看到這個說明打包完成,好了,去看看自己制作的安裝程序吧!
================================================
PS:
1、JRE的大小一般在80M左右,打完包后大概有20多M,我個人還算是可以忍受,網上有很多精簡JRE的教程,
可以嘗試精簡自己的JRE來縮小最終程序的大小,我比較笨,就不精簡了。
2、EXE4J下載地址:http://pan.baidu.com/s/1j9d7a
3、Inno Setup 5下載地址:
http://pan.baidu.com/s/1y2kgW