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

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

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

3. 點擊 應用程序,點擊classpash 那一欄右邊的加號,把你的jar加進去,然后點擊紅線處,彈出的框中只有一個文件夾,雙擊打開,直到找到你的主類為止,點擊 select 確定,如下兩幅圖所示


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

打開E:"Java2D看到

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

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

4.點擊 jvm選項 ,在jvm捆綁包那選上復選框,點紅線處找到jre路徑并確定。如圖

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

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