最近在做的項(xiàng)目需要調(diào)用第三方API雏门,考慮到對java熟悉一些柳畔,就用了java語言進(jìn)行開發(fā)馍管,結(jié)果兩天前老板讓給程序?qū)懸粋€客戶端界面,我一想薪韩,簡單啊确沸,Swing和AWT一起上,布局排版折騰了一天俘陷,終于寫好了罗捎,運(yùn)行程序,完美無瑕拉盾!
(PS:為什么用了java開發(fā)客戶端宛逗?眾所周知,java不適合寫客戶端程序6苁!!替蔬!java的優(yōu)勢是企業(yè)開發(fā)告私、web這塊,的確在界面開發(fā)上不是強(qiáng)項(xiàng)承桥,不過這次的客戶端程序?qū)缑娌]有太多效果的要求驻粟,界面效率也不是瓶頸,相比于其他GUI工具凶异,本人對Java更為熟悉蜀撑,所以此次暫時采用java)
好,下一步剩彬,開始導(dǎo)出酷麦,拿到j(luò)ar文件后,我才意識到關(guān)鍵兩個問題:
??1.運(yùn)行java桌面程序喉恋,必然要安裝java虛擬機(jī)沃饶,這對于普通客戶來說母廷,是很難接受的,那我們有沒有別的辦法糊肤,不讓用戶安裝JDK就可以運(yùn)行java程序琴昆;
??2.jar文件對于客戶來有些太陌生,能不能轉(zhuǎn)成成exe文件馆揉,讓用戶一眼看出這是一個可執(zhí)行文件业舍;
帶著這兩個問題,我開始查資料升酣,對于上述問題舷暮,也找到了解決辦法,現(xiàn)對操作過程進(jìn)行記錄:
??Java程序打包成exe可執(zhí)行文件拗踢,分為三大步驟:
??第一步:將Java程序通過Eclipse或者M(jìn)yeclipse導(dǎo)成Jar包
??第二步:新建一個文件夾脚牍,將jar包以及32位jre(注意:一定要是32位!3彩诸狭!)放入該文件夾下,然后通過Jsmooth或者exe4j將Jar包生成exe可執(zhí)行文件
??第三步:根據(jù)自己的程序君纫,對JRE進(jìn)行瘦身后與exe文件一起打包交付給客戶
重點(diǎn)在于第二部分驯遇,對于Jsmooth和exe4j這兩個軟件,我都進(jìn)行了嘗試蓄髓,exe4j是不是免費(fèi)的叉庐,如果不進(jìn)行注冊,生成后的可執(zhí)行文件在打開時會先彈出提示框会喝,意思是你這個exe文件是用exe4j轉(zhuǎn)的陡叠,雖然說尊重版權(quán)吧,但是作為強(qiáng)迫癥晚癌還是不能忍肢执。于是轉(zhuǎn)而嘗試Jsmooth枉阵,這個軟件簡介明了,又是免費(fèi)的预茄,操作方法綜合參考1和參考2.
在第二步中兴溜,要格外注意的一點(diǎn)是,Jsmooth和exe4j都只能對32位的jdk進(jìn)行捆綁耻陕,通過cmd -version查看拙徽,如果自己的電腦上裝的是64位的jdk,那就比較麻煩了诗宣,筆者就遇到了這種問題膘怕,打開軟件會彈出以下信息:
??我們也知道,eclipse和jdk的位數(shù)必須一樣召庞,不然eclipse無法打開淳蔼,打開會彈出一個類似文件夾的信息侧蘸!所以若我們再裝一個32位jdk后,極易產(chǎn)生混亂鹉梨,導(dǎo)致eclipse打不開讳癌,所以保險起見,還是找一臺安裝有32位jdk的電腦進(jìn)行第二步操作吧存皂。
通過java -verbose查看jdk安裝路徑:
??Jsmooth完成后晌坤,會在第二步建立的文件夾中生成一個exe程序,此時可以刪除jar文件旦袋,只保留exe和jre一起打包給客戶骤菠,就可以讓這個磨人的java小妖精在不裝jdk的電腦上運(yùn)行了!0淘小商乎!