mimi_van

          吞下寂寞的戀人
          posts - 30, comments - 45, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理


          很多時候,程序都不是像前兩篇寫的那么簡單,<如何用My Eclipse 發布 帶mianfes.mf 的 jar 文件(一) >
                                                                                              <如何用My Eclipse 發布 帶mianfes.mf 的 jar 文件(二) >
          很多時候,程序都要用到第三方jar文件,比如最常用的,跟MS-SQLSERVER 交互的就需要用到msbase.jar,mssqlserver.jar,msutil.jar這三個驅動。

          在eclipse中,我們都是依靠 右鍵單擊項目,在 Java bulid path 中添加 來完成。
          明明在eclipse中 測試成功的項目,發布成jar包后就是沒法用。 這里的原因就是這些第三方jar文件沒加載進來。如果你在dos控制臺下運行你的jar包,也會看到這樣的提示。

          可是,到底這些第三方jar文件要配置到哪里呢??這個問題也是困惑了我很久的。

          在網路上看到,很多人說,在 環境變量 里的 classpath 里進行配置,配置的時候要寫絕對路徑哦,要加上第三方jar文件的文件名哦。我試了,依然都找不到呢

          還有人說,在dos 下運行的時候 記得要 手動指定,比如: -classpath 或 -cp ,我也試了,還是不行的。

          后來找到一篇很好的文章,解決了我的困惑。<這篇文章我也有轉載到這里,名字是:jar參數運行應用時classpath的設置方法 >

          當用java -jar yourJarExe.jar來運行一個經過打包的應用程序的時,你會發現如何設置-classpath參數應用程序都找不到相應的第三方類,報ClassNotFound錯誤。

          實際上這是由于當使用-jar參數運行的時候,java VM會屏蔽所有的外部classpath,而只以本身(yourJarExe.jar)的內部class作為類的尋找范圍。

          原來如此呢

          解決的辦法可以參看那篇文章,仔細看哦,我看了好幾遍的...(呵呵...沒辦法啊,我很笨的呢)

          另外,還有一個辦法就是網路上經常說的,做個exe文件吧。雖然執行的時候,依然需要 jre的 環境,但至少有一個好處就是,它可以很方便的將 第三方jar文件捆綁進去...

          關于這個exe文件的制作,不瞞大家說,我又是一通有研究,唉.....有時候,我真的很郁悶,為什么別人一看就懂的問題,我卻要花幾倍的時間,我確實是不上道啊...........

          下面我就來說說我自己的親身體會吧。

          我選擇的 exe 封裝 工具是 JSmooth ,這個東東雖然好用,可是有兩個地方還是很讓人惱火的。
          一個就是,最好把你要生成exe的可執行jar文件,和你用到的第三方jar文件,還有圖片(用來設置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文件的 圖標,圖片尺寸好像有規定,不過我自己試了大的圖片,除了有些變形外,還是可以用的。
                                     <3>. Current directory:  這個選項我沒選過,默認空就好了。


           

          4.點擊Application,看到下面的界面:

              這里要強調一點就是:不能先去選擇Main class,你點擊最右邊的Browser,會發現無法選擇的。
              需要先選擇下面的 Embedded jar,----  Browser,---  選中后,在反過來選擇 Main class
              這兩個選擇好了后,在最下面有一個 Classpath 選項,請把你用到的第三方jar文件添加至此處。
              然后基本就可以了

              



          5.其實下面還有一個 JVM Selection ,和 JVM Config,這兩個,如果你是在自己的機器上使用,這兩個基本默認就好,如果你運行 這個exe 的環境和你的機器上的jre版本不同,那就要在設置了,我也正在看這里,因為我今題那就遇到了此問題。會在補充的。

          6.前面設置都ok了,就可以選擇菜單欄里的project 下的 compile,這時候,會跳出一個對話話,問你要保存exe文件要保存到哪里,你選擇一下,其他的不用動。

              這里保存的其實是兩個文件,一個是 exe 文件,一個是 相對應的 同名的xml 文件,在那個xml文件里 有這個exe的信息。

             去你生成exe的路徑下檢查一下吧,應該是可以用的了。


          評論

          # re: 用 My Eclipse 發布的帶有第三方jar 的jar文件 和 JSmooth 的使用  回復  更多評論   

          2007-12-13 17:18 by kingfengks
          不錯,頂下

          # re: 用 My Eclipse 發布的帶有第三方jar 的jar文件 和 JSmooth 的使用  回復  更多評論   

          2008-01-20 12:32 by SWT
          我的SWT包應該怎么加進去阿?

          # re: 用 My Eclipse 發布的帶有第三方jar 的jar文件 和 JSmooth 的使用  回復  更多評論   

          2008-01-21 10:45 by mimi_van
          這個問題我沒有做過啊,不敢亂說的。你的swt包是什么包啊。能不能加在classpath里呢。

          嘗試有結果了嗎?
          希望共享你的方法

          主站蜘蛛池模板: 萨迦县| 沙田区| 都匀市| 长沙县| 焦作市| 依安县| 吴桥县| 海南省| 大同市| 星子县| 瓦房店市| 揭西县| 仙桃市| 曲靖市| 肥城市| 卢氏县| 安新县| 金川县| 马山县| 彰化市| 达孜县| 舒兰市| 大竹县| 上虞市| 襄垣县| 耒阳市| 安多县| 扎鲁特旗| 贞丰县| 沙田区| 博罗县| 板桥市| 张掖市| 哈尔滨市| 金阳县| 柘城县| 普宁市| 如东县| 惠安县| 舒兰市| 扎囊县|