使用exe4j將java項目打成exe執行程序

最近用Java寫了一個小工具,想將它達成exe執行文件,到時候直接放某個目錄下,一執行就能跑啦。

 

用到的工具:

1、寫好的項目:可以是java項目,也可以是java web項目

2、能夠打jar的工具:我用的MyEclipse開發,他們有自帶的工具,我就直接用這個了

3、exe4j:可以去網上下載,地址:http://www.ej-technologies.com/download/exe4j/files.html,有綠色版的和安裝的,32位和64位的。我的是別人給的安裝版的,跟官網的最新版可能有些出入,有需要的可以去附件中下載。

4、jre:java項目的運行離不開jre,也不能要求客戶自己去裝JDK,所以還是給它帶個比較保險。(JDK安裝之後,有jdk和jre兩個目錄,可以直接複製這個jre文件夾,也可以複製jdk文件夾下的jre。我這裏用的jdk是1.6的)。

5、一張後綴名爲ico的圖標文件,作爲exe執行程序的圖標。也可以沒有。

 

下面開始弄。

一、將項目中的src加壓成jar包:

1、我的目錄結構:

 

2、在項目名稱上右擊(或者在左側的空白處右擊),選擇"Export",也就是導出文件,在彈出框裏面找到“Java---JAR file”,如圖,然後“Next"。

 3、去掉除了src以外的其他文件的勾選狀態,只選擇src文件夾,如圖。然後選擇當前jar要保存的位置。最後的三個Options默認的第一個是勾選的,後面的兩個是不勾選的。咱們這兒一併勾上吧,無非就是要是選的文件夾不存在就新建文件夾,要是在已經存在就直接覆蓋。要是不勾選檢測到指定目錄下有指定文件時會彈出框問你是否覆蓋。上面三點弄完之後,點擊“Next”。

4、使用默認設置,點擊“Next”。

5、往後的步驟,一路默認一路Next就成。期間可能會遇到一個問題,如下圖。這是兩個warnings。無關痛癢,可以不用去管它。你要是覺得不舒服不想要有的話,查網上的資料,說將第四部的兩個勾都給去掉就不會有這個警告了。(我試了試,的確沒有警告了,但是在後面生成exe執行程序之後,卻報錯說被警告的兩個文件找不到了。細看那兩個勾選的內容,一個是說錯誤一個是說警告,跟我的這個找不到文件半毛錢關係都沒有,所以可能是碰巧碰到錯了。)

6、至此,選定的目錄下應該就有導出的jar包了。

 

 

二、組織目錄結構:

將java項目裏面的其他文件夾(我這裏是lib和log兩個文件夾)複製到剛剛導出的jar所在目錄,並將導出的jar包放到lib目錄裏面。再新建一個image或別的名稱的文件夾用來存在exe生成後的圖標(也可以直接放在根目錄下面,我是放在image標籤下),最後將jre文件夾拷貝至此。我的目錄如下:

  
 
 三、使用exe4j工具生成exe執行程序:

1、安裝完成exe4j工具之後,雙擊會打開welcome界面,這個界面是用來輸註冊碼用的,你要是不輸,可以直接next。但若是不輸入,雙擊生成的exe時,會alert出一段話,如圖。必須點“確定”纔可以執行程序。

 爲了不讓這個問題成爲“客戶反饋的問題”,咱們還是輸入註冊碼吧。點擊"Enter license"按鈕,輸入Name、Company、和License Key。前面兩個可以隨便輸,key可以試試下面的。

License Key:

A-XVK258563F-1p4lv7mg7sav 
A-XVK209982F-1y0i3h4ywx2h1 
A-XVK267351F-dpurrhnyarva 
A-XVK204432F-1kkoilo1jy2h3r 
A-XVK246130F-1l7msieqiwqnq 
A-XVK249554F-pllh351kcke50 
A-XVK238729F-25yn13iea25i 
A-XVK222711F-134h5ta8yxbm0

 

2、Lisence輸入完成了點擊“OK”回到welcom界面,點擊“Next”,在“Choose project type”裏面選在“JAR in EXE mode",也就是用jar包來生成exe。Next。 

3、目錄配置,也就是將哪個文件夾下面的東西打成exe。常規裏面填個應用的簡寫名稱,Direcotries裏面選擇需要生成exe的目錄,也就是上面組織的目錄結構。如圖。最後Next。

4、exe執行程序配置。

Executable name:就是exe執行文件的名稱

Icon File:exe執行文件的圖標。這裏選擇image下面的ico文件。這裏只能用ico文件作爲圖標。也可以取消前面的複選框不給當前exe設置圖標,若是不設置系統會根據系統主題自動設置一個圖標。

Allow only a single ......:在一臺電腦上只允許運行一個exe程序,若是允許多個,可以不勾選

最後點擊”Next“。

5、 invocation配置。也就是添加jar文件和指定主方法。點擊綠色的”+“號,在彈出框裏選擇lib中的jar包(如圖2),然後”OK“。這個只能一個一個的添加,要是用的jar包比較多加起來還挺麻煩的。 


lib中的jar都添加完了之後,指定main方法,點擊”main class“後面的按鈕,在彈出框裏面找到程序的主方法,如圖,添加進去。


這兩步都OK之後,最後的結果是:

有時候系統中除了用到jar包之外,還會用到dll文件,而上面的添加jar包的步驟中不能添加dll文件,將dll文件放在與exe同級目錄下也一樣會因爲dll的問題導致系統出錯,甚至於放到system32文件夾下也沒用。我在弄這個系統的時候,就有dll文件,折騰了大半天,也找了好久的資料(找的過程中發現好多人在這一步也很苦惱),後來發現,其實exe4j早就考慮到這個問題了,就是上圖中的Advanced Options,即:

可以通過這個添加任何非dll的文件所在的文件夾,操作很簡單,點擊之後彈出如下圖的對話框,點擊綠色“+”號, 選擇dll文件所在目錄,我這裏是放在lib目錄下的,所以選擇lib,添加完之後,結果如下:

6、 配置jre。配置jre的最小版本,即低於這個版本的Jre無法運行該程序。最大版本也是一樣的。我用的jdk是1.6的,所以配置最小爲1.6。最大的可以不設置。

 接着點擊“Advanced Options”-“Search sequence”,設置一下我們的JRE,因爲客戶的機器上未必有jre所以咱們自己帶一個比較好。在彈出的框裏面點擊綠色的”+“號,在Define search sequence entry中選擇Direcotry,並給定jre所在目錄。然後”OK“。

jre添加完成之後效果如下: 

7、完後的三步都是用默認操作,一路Next即可。直到如下界面:

到這個界面說明已經生成完成了。 還需要說的有三點:

1、Click here to Start the Application:這個按鈕時用來測試執行程序的,點擊該按鈕即可啓動exe執行程序。

2、Save As:這個很重要。這個保存了以上運行步驟的過程,保存後會生成一個exe4j,以後如果需要將該程序重新打exe,直接運行這個exe4j文件即可,以後的各種配置都被存入這個文件了,基本上一路next就成,特別好用。

3、Restart:這個restart有點誤導人。Restart是重啓的意思,在這的話更容易理解成重新生成。我開始弄的時候弄錯了,想重新生成一下,於是點了這個,結果直接給我跳到第一步重新來了。所幸各種設置都還在,要是給我清空我不得重來一回。

8、最後的結果應該這個樣子的:

 說明:上面的截圖中有設置exe的圖標,爲了測試我不設置圖標會出現什麼效果,我這裏沒有添加圖標。其他的跟截圖都是一樣的。

 

四、組織給客戶的東西:

新建一個文件夾,將JRE文件夾和生成的exe執行程序拷貝到文件夾下。若是系統裏面用到了dll文件,這在一步還需要添加dll的文件信息,上文中有提到添加dll文件:是選擇的dll所在的文件夾,這裏也一樣,將dll所在的文件夾複製過來與exe同級,再刪掉裏面的jar包。爲什麼這麼處理呢?因爲exe4j對於這些非jar文件不會像jar包一樣包裝進exe,它只記錄它們的具體位置(也就是讓我們選的dll目錄),所以才需要我們手動添加dll文件及目錄且目錄名稱一定要與選擇的目錄相同。最後,雙擊exe,測試程序效果是否有誤。

 

至此整個過程完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章