在這之前已經(jīng)有很多人講過怎么用JSmooth了,如BeanSoft還貼了自己的視頻,網(wǎng)址是: http://download.gro.clinux.org/beansoft/JSmooth_zh_CN.swf 大家記得去參考,做的挺好的。
寫這篇文章一是為了完整性,再一個(gè)一步一步過來比較自然,先學(xué)會(huì)簡單易用的,思維也容易清晰。很多的文章也免不了千篇一例,過來看看我的見解還是值得的,呵呵。
其實(shí)這款小軟件真是一堆一堆的漏洞,但還是勉強(qiáng)可用,作為開源打包的入門軟件。通常都用JSmooth 0.9.9-7版本的,看看下面的圖

是我們的beansoft翻譯的,上次說過了,有問題可要請教他呀。
先別急著動(dòng)手,先說學(xué)完咱們可以做啥,一個(gè)是你可以生成一個(gè)有exe殼的jar應(yīng)用程序,其實(shí)就是在你的包里多了一個(gè)exe文件,其他的依舊在,不要以為拿著你的exe就出去用了,脫離了你的這個(gè)jar,你的這個(gè)文件結(jié)構(gòu)就玩完了,甚至脫離了你本地機(jī)的java環(huán)境就沒戲了。你不能要求客戶都安裝jdk吧,人家不想搞研發(fā)。別灰心,看完本文你就知道怎么脫離java環(huán)境了(只是脫離本地機(jī)java環(huán)境哦,不是脫離你的那個(gè)包結(jié)構(gòu),還沒那么智能的)。雖然是很簡單,可當(dāng)初我也是不了解。幾個(gè)人硬沒弄出一個(gè)脫離java環(huán)境的,加上小軟件經(jīng)不起蹂躪,然后不得不怪軟件是中文版的,還動(dòng)手用c來生成exe調(diào)用巨大的jdk,然后脫離本地機(jī)java。轉(zhuǎn)了一圈回來才理解了怎么回事。之所以說它經(jīng)不起蹂躪就是你不要對(duì)著上面的按鈕嘩啦嘩啦的點(diǎn),一不小心,它不反應(yīng)了,你的從新打開,次數(shù)開多了,說不定每次都不讓你看某些界面。除非你重啟。或者正常的某個(gè)功能就是不理你了,或者生成的時(shí)候忘了敲上exe而不得不從來。所以蹂躪對(duì)軟件和你都沒好長。
下面分兩部分,一部分教你用最簡單的方式打出exe,體會(huì)一下成功的快樂。一部分教你加上jre脫離本地機(jī)java。
前提,你有java環(huán)境(安裝了jdk)
最簡單的exe打包
其實(shí)最簡單的打包只要寫三個(gè)地方就可以打了,而你可以對(duì)著一個(gè)jar文件就打成你的exe,有一點(diǎn)就是你要知道jar里的主類是誰,不知道這個(gè)概念就問問別人。那么開始吧,講的算細(xì)了。
打開綠色軟件中的jsmoothgen.exe就開始了。這里以打Java2Demo.jar為例(在jdk的demo里有,我就不提供了),
1. 點(diǎn)擊 骨架,選擇Windowed Wrapper (表示打的是windows下的,左邊欄從上到下就一打包流程,很多都沒用上,也沒細(xì)究。移動(dòng)鼠標(biāo)到“?”,人家告訴你該做什么。別太興奮。)

2.點(diǎn)擊 可執(zhí)行文件,點(diǎn)擊紅線處的按鈕找到你的jar文件,記得換后綴為exe,如圖

3. 點(diǎn)擊 應(yīng)用程序,點(diǎn)擊classpash 那一欄右邊的加號(hào),把你的jar加進(jìn)去,然后點(diǎn)擊紅線處,彈出的框中只有一個(gè)文件夾,雙擊打開,直到找到你的主類為止,點(diǎn)擊 select 確定,如下兩幅圖所示


開始生成吧,點(diǎn)擊工具欄里的小齒輪,彈出對(duì)話框,路徑就選在你打包的文件下(好像是必須的),寫上名稱,如圖,確定即可在你的包里看到這個(gè)exe。

打開E:"Java2D看到

其中j2d.jsmooth是jsmooth生成的配置文件,Java2Demo.exe即你要的,點(diǎn)擊試試,看能不能用,然后把exe剪切到其他地方看能不能用,放回來,把C:"Program Files下的java文件夾改名字(注意把用到java虛擬機(jī)的軟件都關(guān)了),看exe還能不能用。(別忘了改回來。)
結(jié)果清楚了exe不能和jar分離了,也不能離開jvm環(huán)境,下面我們就讓他脫離本機(jī)java環(huán)境。這樣的exe可以為我們進(jìn)一步的打包奠定基礎(chǔ),所有它是有用的。
準(zhǔn)備條件:把你jdk下的jre考到和jar同一個(gè)目錄,要圖標(biāo)就找好一個(gè)“.ico”的文件三個(gè)放同一文件夾下
下面開始:
1. 和剛才一樣,點(diǎn)擊 骨架,選擇Windowed Wrapper。
2. 點(diǎn)擊 可執(zhí)行文件,找到你的jar文件,記得換后綴為exe,同樣找到包里準(zhǔn)備好的ico文件如下圖
這就看到一個(gè)bug了,我選的ico它顯示為另外一個(gè)以前同名的ico,即使我改了它的名,其實(shí)還有另一點(diǎn)令人不舒服的,就是每次點(diǎn)擊找路徑都從頭找,它不幫你記下。另外注意一點(diǎn)我一來點(diǎn)了保存,把j2d.exe.jsmooth存到了e:"java2D下,所以你看到的路徑很短,

3.和剛才一樣找到jar放到classpath里,然后找到主類,(注意順序性)

4.點(diǎn)擊 jvm選項(xiàng) ,在jvm捆綁包那選上復(fù)選框,點(diǎn)紅線處找到jre路徑并確定。如圖

選擇了jre
5.開始生成吧,點(diǎn)擊工具欄里的小齒輪,彈出對(duì)話框,路徑就選在你打包的文件下,寫上名稱,如圖,

確定生成
exe是你要的,這里要抱歉一下,它的bug所致,ico用的不是我當(dāng)前的ico,但也沒什么影響。J2d.bmp什么的是不必要的,下一節(jié)才用上,點(diǎn)擊exe看,把C:"Program Files下的java文件夾改名字再試一次,噢,可以了,呵呵。Jsmooth 的其他選項(xiàng)就考各位補(bǔ)充了,俺不太明白了,謝謝各位。下次講launch4j打包。
一種更好的態(tài)度,更好的學(xué)習(xí)、思維方式。它會(huì)是網(wǎng)絡(luò)極佳的生存方式,你喜歡就對(duì)。