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


使用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、我的目錄結構:
img

2、在項目名稱上右擊(或者在左側的空白處右擊),選擇"Export",也就是導出文件,在彈出框里面找到“Java---JAR file”,如圖,然后“Next"。
img
3、去掉除了src以外的其他文件的勾選狀態,只選擇src文件夾,如圖。然后選擇當前jar要保存的位置。最后的三個Options默認的第一個是勾選的,后面的兩個是不勾選的。咱們這兒一並勾上吧,無非就是要是選的文件夾不存在就新建文件夾,要是在已經存在就直接覆蓋。要是不勾選檢測到指定目錄下有指定文件時會彈出框問你是否覆蓋。上面三點弄完之后,點擊“Next”。
img
4、使用默認設置,點擊“Next”。
img
5、往后的步驟,一路默認一路Next就成。期間可能會遇到一個問題,如下圖。這是兩個warnings。無關痛癢,可以不用去管它。你要是覺得不舒服不想要有的話,查網上的資料,說將第四部的兩個勾都給去掉就不會有這個警告了。(我試了試,的確沒有警告了,但是在后面生成exe執行程序之后,卻報錯說被警告的兩個文件找不到了。細看那兩個勾選的內容,一個是說錯誤一個是說警告,跟我的這個找不到文件半毛錢關系都沒有,所以可能是碰巧碰到錯了。)
img
6、至此,選定的目錄下應該就有導出的jar包了。

二、組織目錄結構:

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

img img

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

1、安裝完成exe4j工具之后,雙擊會打開welcome界面,這個界面是用來輸注冊碼用的,你要是不輸,可以直接next。但若是不輸入,雙擊生成的exe時,會alert出一段話,如圖。必須點“確定”才可以執行程序。
img
為了不讓這個問題成為“客戶反饋的問題”,咱們還是輸入注冊碼吧。點擊"Enter license"按鈕,輸入Name、Company、和License Key。前面兩個可以隨便輸,key可以試試下面的。
img
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包比較多加起來還挺麻煩的。
點擊查看原始大小圖片
img
lib中的jar都添加完了之后,指定main方法,點擊”main class“后面的按鈕,在彈出框里面找到程序的主方法,如圖,添加進去。

img
這兩步都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“。
img
jre添加完成之后效果如下:
點擊查看原始大小圖片
7、完后的三步都是用默認操作,一路Next即可。直到如下界面:
點擊查看原始大小圖片
到這個界面說明已經生成完成了。 還需要說的有三點:

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

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

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

8、最后的結果應該這個樣子的:
img
說明:上面的截圖中有設置exe的圖標,為了測試我不設置圖標會出現什么效果,我這里沒有添加圖標。其他的跟截圖都是一樣的。

四、組織給客戶的東西:

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

至此整個過程完成。

來源:http://1017401036.iteye.com/blog/2248488


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM