詳解eclipse將項(xiàng)目打包成jar文件的兩種方法及問(wèn)題解決方法
第一種:利用eclipse中自帶的export功能
第一種方法分兩種情況先來(lái)看第一種情況:沒(méi)有引用外部jar的項(xiàng)目打包
步驟一:右鍵點(diǎn)擊項(xiàng)目選擇導(dǎo)出(export),選擇java>jar文件(不是選擇可運(yùn)行jar文件)


步驟二:選擇你要導(dǎo)出的項(xiàng)目以及文件,指定文件導(dǎo)出路徑。連續(xù)點(diǎn)擊兩個(gè)下一步后到第四步。

步驟三:選擇主類。

按照以上步驟即可完成對(duì)一個(gè)不引用外部jar項(xiàng)目的打包。
第二種情況:沒(méi)有引用外部jar的項(xiàng)目打包
當(dāng)我們引用了外部jar后,使用eclipse自帶的export打包略顯繁瑣。
步驟一:準(zhǔn)備主清單文件 “ MAINFEST.MF ”,放在項(xiàng)目的文件夾下面。
MAINFEST.MF是jar的配置文件,第一行定義版本,第二行指出外部jar的路徑,第三行是主類指示,第四行是空行。
Manifest-Version: 1.0 Class-Path: lib/RXTXcomm.jar Main-Class: com.main.Client
值得注意的是,MAINFEST.MF編寫需要嚴(yán)格規(guī)范,稍有不慎將會(huì)導(dǎo)致jar執(zhí)行無(wú)效
1 第一行不能空,行與行之間不能有空行,每一行的最后一個(gè)字符不能是空格
2 最后一行一定是空行
3 每個(gè)屬性的名稱和值之間(冒號(hào)后面)一定要有空格
4 文件的每一行都不能超過(guò)72個(gè)字節(jié)(一般是70個(gè)ASCII字母加上回車換行符);如果72個(gè)字節(jié)不夠用,則另起一行并以空格開(kāi)頭:以空格開(kāi)頭的行都被視為前一行的續(xù)行。
詳細(xì)規(guī)則這篇文章有講到MANIFEST.MF文件編寫的注意事項(xiàng)
步驟二:與沒(méi)有外部jar的項(xiàng)目一樣,像上面那樣先執(zhí)行到步驟三,不同的是要選著現(xiàn)有的清單,然后點(diǎn)擊完成。

以上就是第一種方法的兩種情況,至此,我們已經(jīng)可以生成jar包了。(如何運(yùn)行jar文件?點(diǎn)擊 這里)
第一種:利用eclipse插件Fat jar打包jar
步驟一:先給eclipse安裝好Fat jar插件
Fat jar 更新站點(diǎn): http://kurucz-grafika.de/fatjar

待文件加載出來(lái)后點(diǎn)擊全部選中,一直下一步知道完成,會(huì)提示重啟,安裝完成。(Fat jar安裝報(bào)錯(cuò)?點(diǎn)擊 這里)
步驟二:右鍵點(diǎn)擊項(xiàng)目名稱,會(huì)看到build fat jar,點(diǎn)擊。

步驟三:配置jar的存放位置以及main類。
紅框內(nèi)為必填,main-class點(diǎn)擊browse選擇主類。(無(wú)法點(diǎn)擊browse?點(diǎn)擊 此處 查看解決方法)

步驟四:選擇要打包的文件以及外部jar,點(diǎn)擊完成。

至此,我們完成了用fat jar插件打包含有外部jar的項(xiàng)目工程。
中途可能遇到的問(wèn)題以及解決方法
問(wèn)題一:打包好jar 文件后如何運(yùn)行?
解決方法:
第一種方法:cmd下直接鍵入Java -jar xxx.jar 開(kāi)始運(yùn)行。(可能需要切換盤符與文件夾,方法點(diǎn) 這里)

(如圖是放在C盤用戶>chen下面的jar)
第二種方法:新建一個(gè)批處理文件,內(nèi)容:Java -jar xxx.jar。放在與jar包同一個(gè)文件夾下面即可,然后雙擊運(yùn)行查看效果。

問(wèn)題二:安裝Fat jar提示出錯(cuò)怎么辦?
解決方法:
在eclipse中
Help -> Install New Software... -> Work with
-> 選擇“The Eclipse Project Updates - http://download.eclipse.org/eclipse/updates/4.7”
-> 勾選"Eclipse Tests,tools, Examples, and Extras" 下的 "Eclipse 2.0 Style Plugin Support"

安裝完后再安裝Fat jar即可
問(wèn)題三:為什么我的main-class無(wú)法browse文件?(猜測(cè)可能有eclipse與Fat jar的版本兼容問(wèn)題)
解決方法:
先用eclipse自帶的export查看main-class名字(export方法如 上面),再?gòu)?fù)制粘貼填下去繼續(xù)步驟。
一般main-class為 包名.主類名,可能不帶Java、main等后綴

注:文中所用到的軟件及版本如下
eclips oxygen with官譯插件
jdk 9
Fat jar插件
總結(jié)
以上所述是小編給大家介紹的詳解eclipse將項(xiàng)目打包成jar文件的兩種方法及問(wèn)題解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringMVC中ModelAndView的使用及說(shuō)明
這篇文章主要介紹了SpringMVC中ModelAndView的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
SpringBoot參數(shù)校驗(yàn)之@Validated的使用詳解
這篇文章主要通過(guò)示例為大家詳細(xì)介紹一下介紹了SpringBoot參數(shù)校驗(yàn)中@Validated的使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-06-06
Java中HTTP接口請(qǐng)求重試的實(shí)現(xiàn)方式
HTTP接口請(qǐng)求重試是指在請(qǐng)求失敗時(shí),再次發(fā)起請(qǐng)求的機(jī)制,在實(shí)際應(yīng)用中,由于網(wǎng)絡(luò)波動(dòng)、服務(wù)器故障等原因,HTTP接口請(qǐng)求可能會(huì)失敗,為了保證系統(tǒng)的可用性和穩(wěn)定性,需要對(duì)HTTP接口請(qǐng)求進(jìn)行重試,所以本文給大家介紹了HTTP接口請(qǐng)求重試的實(shí)現(xiàn)方式,需要的朋友可以參考下2024-01-01
教你在?Java?中實(shí)現(xiàn)?Dijkstra?最短路算法的方法
這篇文章主要教你在?Java?中實(shí)現(xiàn)?Dijkstra?最短路算法的方法,在實(shí)現(xiàn)最短路算法之前需要先實(shí)現(xiàn)帶權(quán)有向圖,文章中給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題(推薦)
這篇文章主要介紹了Lombok插件有望被Intellij IDEA收編以改善兼容性問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

