標籤:... 分享 錯誤 define 添加 bsp 存在 jdk 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,測試程式效果是否有誤。
至此整個過程完成。
來源:http://1017401036.iteye.com/blog/2248488
使用exe4j將java項目打成exe執行程式