java中jar包的生成與使用方式
jar包的生成與使用
什么是jar包?
JAR文件的全稱是Java Archive File,意思是Java檔案文件。
是一種壓縮文件,與常見(jiàn)的ZIP壓縮文件兼容。
兩者最大的區(qū)別是在JAR文件中默認(rèn)包含一個(gè)名為META-INF/MANIFEST.MF的清單文件,這個(gè)文件是生成JAR文件時(shí)由系統(tǒng)自動(dòng)創(chuàng)建的。
使用jar包的好處
- 安全,可以對(duì)其進(jìn)行數(shù)字簽名,只讓能夠識(shí)別數(shù)字簽名的用戶使用里面的東西。
- 加快下載速度;
- 壓縮,使文件變小,與ZIP壓縮機(jī)制完全相同。
- 包封裝。能夠讓JAR包里面的文件依賴于統(tǒng)一版本的類文件。
- 可移植性,能夠在各種平臺(tái)上直接使用。
- 把一個(gè)JAR文件添加到系統(tǒng)的classpath環(huán)境變量之后,java通常會(huì)把這個(gè)JAR文件當(dāng)做一個(gè)路徑來(lái)處理。通常使用jar命令來(lái)壓縮,可以把一個(gè)或多個(gè)路徑全部壓縮成一個(gè)JAR文件。
什么情況下使用jar包?
當(dāng)開(kāi)發(fā)一個(gè)應(yīng)用程序后這個(gè)應(yīng)用程序包含了很多類,如果需要把這個(gè)程序提供給別人使用,通常會(huì)將這些類文件打包成一個(gè)JAR文件,把這個(gè)文件提供給別人使用。
只要在別人系統(tǒng)的CLASSPATH環(huán)境變量中添加這個(gè)文件,則java虛擬機(jī)就可以自動(dòng)在內(nèi)存中解壓這個(gè)jar包。
可以使用命令來(lái)創(chuàng)建也可以再編譯器中創(chuàng)建
在編譯器中創(chuàng)建
在這里選擇帶有主方法的類,點(diǎn)擊OK;如果要打包普通的類,即沒(méi)有帶主方法,在這里不用選直接進(jìn)行下一步點(diǎn)擊OK
操作成功后可以在以下目錄查看到生成的jar包
如何使用jar包
將生成的jar復(fù)制到想用的地方。
如復(fù)制到桌面上,然后打開(kāi)命令窗口執(zhí)行 java -jar jar包名
如果想在另一個(gè)工程中使用:
將剛才的jar包添加進(jìn)新建的目錄
添加進(jìn)依賴
用命令創(chuàng)建
jar命令詳解
jar cf test.jar test
不顯示壓縮過(guò)程將當(dāng)前路徑下的test路徑下的全部?jī)?nèi)容生成一個(gè)test.jar文件,如果已經(jīng)存在則被覆蓋。jar cvf test.jar test
顯示壓縮過(guò)程;jar cvfM test.jar test
不生成清單文件;jar cvfm test.jar manifest.mf test
自定義清單文件信息,m指定讀取用戶清單信息。清單文件是普通文本文件。jar cvfm test.jar a.txt test
將清單文件中的key-value對(duì)提取到META-INF/MANIFEST.MF文件中。jar tf test.jar
查看jar包內(nèi)容;jar tf test.jar > a.txt
:如果jar包中的文件路徑和文件非常多,用上一個(gè)命令就無(wú)法查看所有,所以用重定向?qū)@示結(jié)果保存到文件中。jar tvf test.jar
:查看詳細(xì)內(nèi)容;jar xf test.jar
解壓,將jar文件解壓到當(dāng)前目錄下;jar xvf test.jar
解壓,顯示解壓過(guò)程的信息;jar uf test.jar Hello.class
:更新test.jar中的Hello.jar文件,如果存在則覆蓋,否則添加;jar uvf test.jar Hello.class
:更新時(shí)顯示詳細(xì)信息;
創(chuàng)建可用jar包
jar命令-e選項(xiàng),該選項(xiàng)指定JAR包中作為程序入口的主類的類名。
jar cvfe test.jar test.Test test
上面的命令把test目錄下的所有文件都?jí)嚎s到test.jar包中,并指定使用test.Test類作為程序入口。
運(yùn)行上面JAR包有兩種方式:
java -jar test.jar
javaw test.jar
當(dāng)創(chuàng)建JAR包時(shí),所有類都必須放在與包結(jié)構(gòu)對(duì)應(yīng)的目錄結(jié)構(gòu)中。
就像上面-e選項(xiàng)指定的Test類,表明入口類為Test類。
因此在JAR包下包含Test.class文件。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Swagger中@API?tags中含有中文異常問(wèn)題的解決
這篇文章主要介紹了Swagger中@API?tags中含有中文異常問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01springboot響應(yīng)json?null值過(guò)濾方式
這篇文章主要介紹了springboot響應(yīng)json?null值過(guò)濾方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn)
項(xiàng)目需要用到一個(gè)Jar包,不能從遠(yuǎn)程倉(cāng)庫(kù)拉取,只有一個(gè)Jar包,所以需要將Jar包打入到本地倉(cāng)庫(kù)才能引入項(xiàng)目,本文主要介紹了Maven將Jar包打入本地倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12詳解Spring如何更簡(jiǎn)單的讀取和存儲(chǔ)對(duì)象
這篇文章主要為大家詳細(xì)介紹了Spring中如何更簡(jiǎn)單的實(shí)現(xiàn)讀取和存儲(chǔ)對(duì)象,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07