国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java項目打成jar包時引用了第三方jar,此時我們該如何解決呢

2019-11-14 15:05:47
字體:
來源:轉載
供稿:網友

Web項目做多了,反而對單純的java項目陌生了,今天我們在開發項目的過程中,碰到一個這樣的需求:需要將java項目放到linux系統上跑起來,當然這個javaSE項目是帶main方法的。我們知道在IDE里寫完JavaSE項目后,運行非常簡單,只要本地java環境裝好了,右擊main方法---->run as-->java application就行,那么放到linux上呢?目前我們想到的有兩種方法:一種是打成jar包放到服務器上,用命令java -jar ****.jar執行jar包即可。另外一種也是挺常見的將java項目放到服務器上,然后寫一個shell腳本執行。關于方法二,還正在嘗試之中。今天我要說的是方法一操作時需要注意的。

打jar包很簡單,直接在myeclipse或者eclipse里導出jar包就行。具體做法是:

右擊項目------->export---->選擇JAR file:

------>next----->:指定導出的jar包具體存放位置即jar包名稱:

------>next--->默認:

------>選擇要執行的main方法:

----->finesh,這樣將JavaSE項目打成jar包就完成了,到此就可以放到服務器上執行java -jar test.jar,就執行指定的main方法了。

至此,如果你寫的java項目沒有引入第三方的jar包,一點問題都沒有,但是一旦你引入了框架呀或者自己公司寫的jar包時,問題就悄悄來了,待你執行時就會發現拋出了NoClassDeFined諸如此類的問題,也就是找不到這個類,這時候你也許會奇怪,為啥呀,明明有這個類啊,那是你的錯覺,你在IDE里導入了需要的jar包,當然會有了,但問題時你現在執行的這個jar文件放到了服務器上,它里面是否包含了這個jar呢,原來我以為打成jar包時就把引入的jar包一并再次打包,現在想想應該不會吧。呵呵,具體我還沒怎么去深究,今天咱們先把這個解決方法說了。

步驟一:在你服務器存放jar包的同級目錄下創建一個lib目錄,并且將所有需要導入的第三方jar包全放進去,一個也不要剩:

步驟二:在IDE里準備清單文件:MANIFEST.MF,即在項目的目錄下,新建一個MANIFEST.MF文件,先不要問為什么,相信我,咱們先解決掉咱們問題后再說:

關于清單文件里的內容:

ManifestMain-Version:版本,1.0

Class-Path:將第三方的jar名都放進去,注意:后面要留一個空格

Main-Class:jar包要執行的main方法,記得寫類的全路徑,同事:后面要留一個空格。

OK了,清單文件準備完成了,繼續下一步操作。

步驟三:重新打jar包,步驟和原來的一樣,export---next---...但是有一點區別的是,如下需要使用自己寫好的清單文件:

步驟四:jar包打好了,傳到你的linux服務器上吧,記得和lib放在同一級目錄下,這樣執行java -jar test.jar就能順利執行了。

今天只是說明了其中的一種解決辦法,至于原理我想你在寫清單文件的時候應該就理解了吧,它會去這個class-path里找到jar包解析了。當然還有其他的辦法,目前我知道的這個分享給你們了,咱們一起進步!!!

參考來自:http://m.survivalescaperooms.com/lanxuezaipiao/p/3291641.html#3306113


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定日县| 南华县| 东方市| 平谷区| 衡水市| 柏乡县| 泽库县| 北票市| 信阳市| 巫山县| 罗江县| 阳信县| 慈利县| 原阳县| 阜宁县| 凌海市| 新乐市| 乌鲁木齐县| 固阳县| 和平区| 芜湖市| 家居| 平度市| 玉树县| 鄂州市| 五常市| 诏安县| 隆昌县| 西和县| 化德县| 榆林市| 长子县| 柳河县| 彰武县| 凭祥市| 嘉荫县| 凤山县| 临沧市| 尉犁县| 中山市| 陆良县|