本文首先默認你已經(jīng)擁有可用的jar文件和exe4j程序。
下面開始詳述步驟:
1.welcome-打開exe4j

如圖,如果你有保存過的項目打包配置文件,那么點>>open打開即可。如果沒有點>>next.
2.Project type-選擇打包方式

由于我們講的是打包jar生成exe,所以選“jar in exe”mode,這種方式可以把一個java應(yīng)用程序打包成一個exe文件,但是不能將除jar以外的附加文件打包進去。然后>>next
3. Application info-配置生成的應(yīng)用程序的信息

設(shè)置你的應(yīng)用程序的名稱和將要生成的可執(zhí)行文件的輸出文件夾。然后>>next.
4.Executable info -配置可執(zhí)行文件的參數(shù)

type項根據(jù)你的程序的類型確定,本例為GUI程序;接下來是文件名、可執(zhí)行文件的圖標、是否只允許同時刻只能運行一個應(yīng)用程序、當主線程有誤時是否拋出異常、更改工作目錄(相對于可執(zhí)行文件)。然后點>>advanced options>>version info
5.version info-設(shè)置版本信息

6.java invocation-配置運行環(huán)境

先配置class path,將此項內(nèi)原有的配置全部刪除,然后點“+”將你導(dǎo)出的主程序JAR包和第三方依賴包逐一添加到類路徑中,這里強烈建議使用從你項目發(fā)布目錄出發(fā)的相對路徑,也就是說要從上面第3步圖片中的輸出目錄位置出發(fā)。例如:你將主程序jar包放在輸出目錄根下,點擊添加后在上邊的class path框里顯示為“.\xxxxx.jar”。如果你的第三方j(luò)ar包在輸出目錄根下的lib目錄下,添加后顯示為“.\lib\xxxx.jar”

然后在上邊的genera
l中點瀏覽按鈕,exe4j會自動找到你應(yīng)用程序的入口-main class。[2014-3-23]以下是舊時的理解,應(yīng)該是有問題的:在下邊的advanced options中選native libraries設(shè)置,此功能是添加你程序用到的外部jar包文件,這個我一直沒用過,因為我做什么事都喜歡集中,所以在程序中用到的所有外部包全整合到j(luò)dk/jre里了,這樣在給客戶安裝程序時只要把程序直接給他考過去就可以用了,不用再安裝其它東西,他們會很喜歡的哦,畢竟用戶不是搞程序設(shè)計的嘛。
不過將第三方包放在jre里當時確是這么做的。
7.jre-配置jre

在這里配置你的jre版本類型,然后再看>>advanced option>>search sequence

在這里來配置你運行程序所需的jre/jdk的位置,如果你只是打包后本機運行,直接指定到你本機的jre/jdk目錄即可,如果你打包后的程序要在別的客戶機上運行,而該機又沒裝jdk,這時我們就要想另一種方法了。從客戶的角度講,拿到手的軟件在安裝過程中應(yīng)盡可能少的給客戶帶來繁瑣的安裝事項,最好只點一下鼠標就能自動安裝。因此,我們要讓用戶省去安裝jdk的麻煩。要解決這個問題,我們可以把安裝好的jdk復(fù)本放置在最終產(chǎn)品的根目錄下,然后在上圖中添加這個jdk復(fù)本為程序的運行環(huán)境

search registty 可以掃描已經(jīng)安裝的jdk/jre,我們選擇directory,為程序指定一個jdk目錄,只需定位到j(luò)dk根目錄即可,如上圖。 然后>>next
這里要說明一點,用eclipse開發(fā)的程序只要一個jre就行了,jdk不用的,所以我是把jre打包進exe運行環(huán)境的,這樣的話在java version下邊的那個允許使用jre beta版的選項就要選中了。
8.preferred vm-選擇虛擬機

這個根據(jù)具體情況選擇,本例為client. 然后>>next
9.splash screen -啟動畫面

在這里可以設(shè)置你的啟動界面,不過好像只認gif、png類型的圖片,status line and version line 可以在position text lines visually預(yù)覽界面中調(diào)整其顯示位置。然后>>next,接下來是選擇語言界面,根據(jù)自己情況選擇。然后>>next
10.compile executable-編譯生成可執(zhí)行文件

自動跳轉(zhuǎn)至:

在這里可以點擊運行生成的可執(zhí)行文件,也可以將本次配置方案保存起來以備后用。
好,到此整個使用過程告以段落。可能某些操作寫得有不當之處,還請各位更正補充。
TonyLee.