前言:
我們都知道Java可以將二進(jìn)制程序打包成可執(zhí)行jar文件,雙擊這個(gè)jar和雙擊exe效果是一樣一樣的,但感覺(jué)還是不同。其實(shí)將java程序打包成exe也需要這個(gè)可執(zhí)行jar文件。
準(zhǔn)備:
eclipse、exe4j(網(wǎng)上有軟件和帳號(hào)下載)
第一步,將java項(xiàng)目打包成可執(zhí)行jar文件,首先看一下我的java project結(jié)構(gòu),Main.java是程序入口類,里面有main函數(shù),config目錄是些配置文件,lib是用到的第三方類庫(kù)
開(kāi)始打包,Simulate(Java項(xiàng)目)-鼠標(biāo)右鍵-Export
彈出窗口,選擇“JAR file”,點(diǎn)擊“Next”
取消勾選“config”和“lib”目錄,以及eclipse生成的項(xiàng)目配置文件“.classpath”和“.project”,點(diǎn)擊“Next”
一切默認(rèn),點(diǎn)擊“Next”
在彈出窗口中,選擇我們自己創(chuàng)建的MANIFEST.MF文件,點(diǎn)擊“Finish”
我的MANIFEST.MF文件內(nèi)容為:
Manifest-Version: 1.0
Main-Class: bing.Main
Class-Path: . lib/ojdbc14.jar lib/poi-2.5.1.jar lib/jbcl.jar lib/JTattoo.jar lib/liquidlnf.jar
Created-By: IceWee
通過(guò)指定“Main-Class”來(lái)達(dá)到可執(zhí)行jar文件的目的。其實(shí)我們最終是將項(xiàng)目打包成exe,Class-Path可以不指定,在打包exe的時(shí)候還要指定classpath的。
第二步,將項(xiàng)目打包成exe,這里要明確一點(diǎn),并不是把所有的文件都打包成一個(gè)exe,資源文件是不能包進(jìn)去的,往下看↓
首先,在任意目錄創(chuàng)建一個(gè)文件夾,最好命名和項(xiàng)目名相同,我在F盤創(chuàng)建了一個(gè)“Simulate”文件夾,之后將所有的資源文件以及我們生成的可執(zhí)行jar文件(我的Simulate.jar)都拷貝到這個(gè)文件夾里,config目錄和lib目錄,如果你怕執(zhí)行該程序的機(jī)器上沒(méi)安裝jre,那么你需要將自己機(jī)器上的jre目錄也拷貝進(jìn)來(lái),我安裝的jre5,最后的目錄結(jié)構(gòu):
打開(kāi)exe4j,跳過(guò)歡迎,直接點(diǎn)擊左側(cè)導(dǎo)航的第二項(xiàng),因?yàn)槲覀円呀?jīng)提前將java項(xiàng)目打包成可執(zhí)行jar文件了
在彈出窗口,選擇“JAR in EXE mode”,點(diǎn)擊“Next”
在新窗口中,為我們的應(yīng)用取個(gè)名稱,之后選擇exe生成目錄(我的F:\Simulate),點(diǎn)擊“Next”
為我們要生成的exe取名,如果想生成自定義圖標(biāo),那么選擇你的ico文件,如果你不想在一臺(tái)電腦上運(yùn)行多個(gè)你的程序,你可以勾選“Allow only a single...”,點(diǎn)擊“Next”
點(diǎn)擊綠色“+”,設(shè)置程序運(yùn)行的Class Path
先選擇我們自己的可執(zhí)行jar文件(我的Simulate.jar),點(diǎn)擊OK
我們的Simulate.jar就加到Class Path下了
之后點(diǎn)擊General中的Main Class選擇按鈕,在彈出窗口中,exe4j會(huì)自動(dòng)搜索當(dāng)前Class Path下的全部jar中包含main方法的類,并列出,因?yàn)楫?dāng)前我只選擇了自己項(xiàng)目的jar,而我的項(xiàng)目中只有Main.jar包含了main方法,所以一目了然,直接選擇它點(diǎn)擊“OK”,程序入口類就設(shè)置完成了
Main Class設(shè)置完成后,依次將所有需要的第三方類庫(kù)加到Class Path下,方法同添加“Simulate.jar”一樣,點(diǎn)擊“Next”
輸入Java最小Jre版本號(hào),即低于這個(gè)版本的Jre無(wú)法運(yùn)行該程序,接著點(diǎn)擊“Advanced Options”-“Search sequence”,設(shè)置一下我們的JRE,之前說(shuō)過(guò),如果客戶機(jī)上沒(méi)裝Jre咋辦?,沒(méi)關(guān)系我們捆綁一個(gè)進(jìn)去
點(diǎn)擊綠色“+”來(lái)選擇捆綁的JRE位置
在彈出對(duì)話框中選擇“Directiony”,之后選擇JRE的文件夾,注意:這個(gè)JRE目錄是我們將本機(jī)的JRE目錄拷貝到當(dāng)前exe生成目錄下的,我的目錄是F:\Simulate\jre5,下圖程序使用的是相對(duì)目錄,點(diǎn)擊OK,完成JRE的捆綁操作
JRE捆綁完畢,點(diǎn)擊“Next”
默認(rèn),點(diǎn)擊“Next”
默認(rèn),點(diǎn)擊“Next”
默認(rèn),點(diǎn)擊“Next”
exe生成中
OK,完成,點(diǎn)擊“Exit”即可
看看成果如何吧!
我們的可執(zhí)行jar以及第三方j(luò)ar總共還不到5M,可jre5目錄就50多M,如果目標(biāo)機(jī)器上有JRE環(huán)境就可以把它刪掉了,lib目錄是第三方j(luò)ar文件,現(xiàn)已打包到exe中了,所以它也沒(méi)有存在的理由了,那么最小配置就剩下了“Simulate.exe”和“config”目錄了!