溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java jar打包工具如何使用

發(fā)布時(shí)間:2020-10-27 21:25:35 來源:億速云 閱讀:150 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章運(yùn)用簡單易懂的例子給大家介紹Java jar打包工具如何使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

java的jar是一個(gè)打包工具,用于將我們編譯后的class文件打包起來,這里面主要是舉一個(gè)例子用來說明這個(gè)工具的使用。

在C盤下的temp文件夾下面:

有一個(gè)com.pack.surfront的package 這個(gè)package下面有一些已經(jīng)class文件如:Test1.class,Test2.class,Test3.class,其中Test1.class下有一個(gè)可執(zhí)行文件。

我們打開cmd,然后cd temp到temp文件夾下面,因?yàn)閏om.pack.surfront是包路徑,不需要再進(jìn)去然后再打包,打包的時(shí)候必須要把這個(gè)包也打進(jìn)去,否則的話打出來的包中的類將無法訪問了。

進(jìn)去之后執(zhí)行命令:
jar cvf hello.jar com

然后按enter鍵即可,解釋一下,這個(gè)jar是jdk下的一個(gè)命令,然后cvf是三個(gè)參數(shù),在cmd下直接輸入jar即可參看一下這個(gè)命令的介紹,這里不說這個(gè)(其實(shí)是我也沒查過!icon_lol.gif )

hello.jar是打出來的包的名稱,這個(gè)是可以隨便取的。com是那個(gè)包的頂端路徑。這個(gè)命令執(zhí)行完之后就會(huì)在temp路徑下面生成一個(gè)hello.jar文件,我們可以用rar解壓縮文件解壓他,可以看到其中有一個(gè)META-INF的目錄,該目錄下有一個(gè)MANIFEST.MF文件,打開該文件,可以看到

Manifest-Version: 1.0
Created-By: 1.6.0_26 (Sun Microsystems Inc.)

這兩行內(nèi)容,一般如果從外面引用這個(gè)jar里面的類和方法有這些就足夠了,但是我的Test1.class文件里面還有一個(gè)main方法,我想打完包之后可以執(zhí)行這個(gè)jar,那么還需要一些其他的配置,我們?cè)谏厦娴奈募?nèi)容中添加一行,添加完之后文件全部內(nèi)容如下:

Manifest-Version: 1.0
Created-By: 1.6.0_26 (Sun Microsystems Inc.)
Main-Class: com.pack.surfront.Test1

第三行就是指定了一個(gè)主類,說明該類中存在main方法,那么之后這個(gè)jar就可以執(zhí)行了。注意那一行一定要把完整的class文件的路徑寫全,不然會(huì)提示找不到該類的。

把這個(gè)文件改成這樣了之后把這個(gè)MANIFEST.MF文件拿出來放在temp目錄下面,然后把剛才生成的hello.jar和解壓后的其他文件全都刪除。然后重新打包一次

這時(shí)候temp目錄下面應(yīng)該是這樣的結(jié)構(gòu):原來的com文件夾,我們修改后的MANIFEST.MF文件,這時(shí)候在cmd下執(zhí)行:
jar cvfm hello.jar MANIFEST.MF com看出來有什么不同了沒?一個(gè)是將原來的cvf改成cvfm,然后再hello.jar后添加了一個(gè)MANIFEST.MF她的意思就是指打包的時(shí)候不再生成(m參數(shù)的功能)MANIFEST.MF文件,而是把我們指定的mf文件打包進(jìn)去。執(zhí)行這個(gè)命令之后就完事了。然后在cmd下面執(zhí)行:

java -jar hello.jar這個(gè)時(shí)候main方法就會(huì)執(zhí)行,如果他需要什么參數(shù)則直接放在后面即可。和直接執(zhí)行java Test 參數(shù) 是一樣的。

關(guān)于Java jar打包工具如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI