Posted on 2007-12-11 17:54
mimi_van 閱讀(1490)
評論(3) 編輯 收藏 所屬分類:
jar文件
很多時候,程序都不是像前兩篇寫的那么簡單,<如何用My Eclipse 發(fā)布 帶mianfes.mf 的 jar 文件(一) >
<如何用My Eclipse 發(fā)布 帶mianfes.mf 的 jar 文件(二) >
很多時候,程序都要用到第三方j(luò)ar文件,比如最常用的,跟MS-SQLSERVER 交互的就需要用到msbase.jar,mssqlserver.jar,msutil.jar這三個驅(qū)動。
在eclipse中,我們都是依靠 右鍵單擊項目,在 Java bulid path 中添加 來完成。
明明在eclipse中 測試成功的項目,發(fā)布成jar包后就是沒法用。 這里的原因就是這些第三方j(luò)ar文件沒加載進來。如果你在dos控制臺下運行你的jar包,也會看到這樣的提示。
可是,到底這些第三方j(luò)ar文件要配置到哪里呢??這個問題也是困惑了我很久的。
在網(wǎng)路上看到,很多人說,在 環(huán)境變量 里的 classpath 里進行配置,配置的時候要寫絕對路徑哦,要加上第三方j(luò)ar文件的文件名哦。我試了,依然都找不到呢
還有人說,在dos 下運行的時候 記得要 手動指定,比如: -classpath 或 -cp ,我也試了,還是不行的。
后來找到一篇很好的文章,解決了我的困惑。<這篇文章我也有轉(zhuǎn)載到這里,名字是:jar參數(shù)運行應(yīng)用時classpath的設(shè)置方法 >
當用java -jar yourJarExe.jar來運行一個經(jīng)過打包的應(yīng)用程序的時,你會發(fā)現(xiàn)如何設(shè)置-classpath參數(shù)應(yīng)用程序都找不到相應(yīng)的第三方類,報ClassNotFound錯誤。
實際上這是由于當使用-jar參數(shù)運行的時候,java VM會屏蔽所有的外部classpath,而只以本身(yourJarExe.jar)的內(nèi)部class作為類的尋找范圍。
原來如此呢
解決的辦法可以參看那篇文章,仔細看哦,我看了好幾遍的...(呵呵...沒辦法啊,我很笨的呢)
另外,還有一個辦法就是網(wǎng)路上經(jīng)常說的,做個exe文件吧。雖然執(zhí)行的時候,依然需要 jre的 環(huán)境,但至少有一個好處就是,它可以很方便的將 第三方j(luò)ar文件捆綁進去...
關(guān)于這個exe文件的制作,不瞞大家說,我又是一通有研究,唉.....有時候,我真的很郁悶,為什么別人一看就懂的問題,我卻要花幾倍的時間,我確實是不上道啊...........
下面我就來說說我自己的親身體會吧。
我選擇的 exe 封裝 工具是 JSmooth ,這個東東雖然好用,可是有兩個地方還是很讓人惱火的。
一個就是,最好把你要生成exe的可執(zhí)行jar文件,和你用到的第三方j(luò)ar文件,還有圖片(用來設(shè)置exe需要的),這幾樣通通放到一個目錄下。
在一個就是,下面選擇mianfest.mf文件時,必須先選擇 地下的 embedded jar,這個選好了,在mianfest.mf的瀏覽里你才能看到 要選的 main 主文件
下面看我自己的實踐體驗:
1,首先你得去下在一個 JSmooth,很多很多的。(放心吧,我都能下載的到,你一定也可以)
安裝后,在文件夾下,雙擊這個文件 jsmoothgen.exe,看到以下的界面 (我的是 jsmooth-0.9.9-7哦)
這是個歡迎界面了。
2.點擊右邊的 Skeleton 如圖:

Skeleton Selection 我選擇的是 Windowed Wrapper
Skeleton Properties 選擇 Launch java app in the exe process
選擇好了后,接著點擊右邊的 Executable
3. Executable 界面:
在下面的界面中,Executable Settings 里 有三個選項(鼠標滑動到小問號上,就會有說明德)
<1>. Executable Binary: 寫一下你希望生成的 exe文件名,記得要帶著擴展名的。這里只寫名字即可,不用管路徑。
<2>. Executable Icon: 選擇一副圖片 作為 即將生成的exe文件的 圖標,圖片尺寸好像有規(guī)定,不過我自己試了大的圖片,除了有些變形外,還是可以用的。
<3>. Current directory: 這個選項我沒選過,默認空就好了。
4.點擊Application,看到下面的界面:
這里要強調(diào)一點就是:不能先去選擇Main class,你點擊最右邊的Browser,會發(fā)現(xiàn)無法選擇的。
需要先選擇下面的 Embedded jar,---- Browser,--- 選中后,在反過來選擇 Main class
這兩個選擇好了后,在最下面有一個 Classpath 選項,請把你用到的第三方j(luò)ar文件添加至此處。
然后基本就可以了

5.其實下面還有一個 JVM Selection ,和 JVM Config,這兩個,如果你是在自己的機器上使用,這兩個基本默認就好,如果你運行 這個exe 的環(huán)境和你的機器上的jre版本不同,那就要在設(shè)置了,我也正在看這里,因為我今題那就遇到了此問題。會在補充的。
6.前面設(shè)置都ok了,就可以選擇菜單欄里的project 下的 compile,這時候,會跳出一個對話話,問你要保存exe文件要保存到哪里,你選擇一下,其他的不用動。
這里保存的其實是兩個文件,一個是 exe 文件,一個是 相對應(yīng)的 同名的xml 文件,在那個xml文件里 有這個exe的信息。
去你生成exe的路徑下檢查一下吧,應(yīng)該是可以用的了。