新聞中心
在軟件開發(fā)過程中,我們經(jīng)常會使用Java編寫的程序,并將其打包成jar文件。但是有時候,我們需要從這個jar文件中提取一些特定的文件或者查看其內(nèi)部構(gòu)成,這時候我們就需要將其解壓縮。在Linux系統(tǒng)下,我們可以使用一些命令行工具進行解壓縮,本文將詳細介紹如何使用Linux解壓縮jar壓縮文件。

之一步:安裝需要的工具
在使用Linux解壓縮jar壓縮文件之前,我們需要安裝一個叫做unzip的工具。在Ubuntu或Debian等系統(tǒng)下,我們可以使用apt-get命令進行安裝,具體命令如下:
sudo apt-get install unzip
如果你使用的是CentOS或者Fedora等系統(tǒng),則可以使用yum命令進行安裝,具體命令如下:
sudo yum install unzip
安裝完成后,我們可以在終端中輸入unzip命令來檢查是否安裝成功。如果顯示出類似如下信息,則說明安裝成功了。
Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
第二步:找到需要解壓縮的jar文件
接下來我們需要找到需要解壓縮的jar文件,并確定其完整的路徑。可以在終端中使用cd命令切換到該文件所在的目錄下,因為我們執(zhí)行解壓縮命令時需要用到該文件的完整路徑。如果你不清楚文件的路徑,你可以使用find命令搜索jar文件的位置。
find / -name example.jar
上述命令會在整個系統(tǒng)中搜索名為example.jar的文件,并將搜索結(jié)果返回給你。
第三步:使用unzip命令解壓縮
一旦我們找到了需要解壓縮的文件并確定了其完整路徑,我們可以使用unzip命令進行解壓縮。下面是具體的命令格式:
unzip [options] filename.zip [path]
其中,options表示可選的選項,filename.zip表示需要解壓縮的文件名,path表示解壓縮的路徑。如果path選項沒有給出,則會將解壓縮的文件直接放在當前目錄下。
如果我們想要解壓縮example.jar文件,并將其放在/home/user/example目錄下,下面是具體的命令:
unzip example.jar -d /home/user/example
當我們執(zhí)行完這個命令后,unzip將會在/home/user/example目錄下創(chuàng)建一個名為example的文件夾,并將.jar文件中的所有文件都解壓縮到這個文件夾里面。
第四步:驗證解壓縮結(jié)果
解壓縮過程完成后,我們可以進入解壓縮文件夾,通過ls命令查看其中的內(nèi)容。如果解壓縮成功,我們應(yīng)該可以看到j(luò)ar文件中所有的文件都已被成功提取。
通過以上四個步驟,我們可以輕松地使用Linux解壓縮jar壓縮文件。由于Linux下有多種不同的命令行工具可以進行解壓縮操作,可能會有所不同。不過無論使用什么工具,我們的目標都是將jar文件中的內(nèi)容提取出來,以便后續(xù)的操作。希望以上內(nèi)容能對你有所幫助。
相關(guān)問題拓展閱讀:
- Linux添加、修改、刪除jar包內(nèi)文件
- linux下生成jar包的命令行工具是什么,有哪位大俠有總結(jié)么,求分享!!
Linux添加、修改、刪除jar包內(nèi)文件
項目現(xiàn)場使用
堡壘機
等旅物碼安全措施時,有時不能用FTP方式訪問Linux系統(tǒng)。如果此時需螞嘩要修改
配置文件
,或增刪jar包內(nèi)文件,只能通過Shell
命令行
進行操作。
首先需要Linux系統(tǒng)中裝有vim和zip程序,使用 vim xxx.jar 打開jar包:
首先建一個目錄,將jar包內(nèi)的文件解壓到目錄中:
下面是分解動作~
然后,你得到了一個目錄。自行拆哪處理好需要添加、刪除的文件后,在目錄中執(zhí)行:
最后你就得到了一個嶄新的jar包( ̄▽ ̄)/~
linux下生成jar包的命令行工具是什么,有哪位大俠有總結(jié)么,求分享?。?/h3>
現(xiàn)在很多人真是為了搶分,隨便一個復(fù)制粘貼,太不負責了。
你要用jar命令,首先必須要安裝jdk,下載鏈接
安裝完畢后,假如你要褲燃螞對test文件進行打胡埋包,可以用如下命令:
jar cf myfile.jar test
如果你要解壓,段友可以只用用unzip進行解壓即可:
unzip myfile.jar
制作可執(zhí)行的JAR文件包及jar命令詳解
常常在網(wǎng)上看到有人詢問:如何把 java 程序編譯成 .exe 文件。通?;卮鹬挥袃煞N,一種是制作一個可執(zhí)行的 JAR 文件包,然后就可以像.chm 文卜笑檔一樣雙擊運行了;而另一種是使用 JET 來進行
編譯。但是 JET 是要用錢買的,而且據(jù)說 JET 也不是能把所有的 Java 程序都編譯成執(zhí)行文件,性能也要打些折扣。所以,使用制作可執(zhí)行 JAR 文件包的方法就是更佳選擇了,何況它還能保持 Java 的跨平臺特性。
下面就來看看什么是 JAR 文件包吧:
1. JAR 文件包
JAR 文件就是 Java Archive File,顧名思意,它的應(yīng)用是與 Java 息息相關(guān)的,是 Java 的一型和含種文檔格式。JAR 文件非常類似 ZIP 文件–準確的說,它就是 ZIP 文件,所以叫它文件包。JAR 文件與 ZIP 文件唯一的區(qū)別就是在 JAR 文件的內(nèi)容中,包含了一個 META-INF/MANIFEST.MF 文件,這個文件是在生成 JAR 文件的時候自動創(chuàng)建的。舉個例子,如果我們具有如下目錄結(jié)構(gòu)的一些文件:
==
`– test
`– Test.class
把它壓縮成 ZIP 文件 test.zip,則這個 ZIP 文件的內(nèi)部目錄結(jié)構(gòu)為:
test.zip
`– test
`– Test.class
如果我們使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,則這個 JAR 文件的內(nèi)部目錄結(jié)構(gòu)為:
test.jar
|– META-INF
| `– MANIFEST.MF
`– test
`–Test.class
2. 創(chuàng)建可執(zhí)行的 JAR 文件包
制作一個可執(zhí)行的 JAR 文件包來發(fā)布你的程序是 JAR 文件包最典型的用法。
Java 程序是由若干個 .class 文件組成的。這些 .class 文件必須根據(jù)它們所屬的包不同而分級分目錄存放;運行前需要把所有用到的包的根目錄指定給 CLASSPATH 環(huán)境變量或者 java 命令的 -cp 參數(shù);運行時還要到控制臺下去使用 java 命令來運行,如果需要直接雙擊運行必須寫 Windows 的批處理文件 (.bat) 或者 Linux 的 Shell 程序。因此,許多人說,Java 是一種方便開發(fā)者苦了用戶的程序設(shè)計語言。
其實不然,如果開發(fā)者能夠制作一個可執(zhí)行的 JAR 文件包交給用戶,那么用戶使用起來就方便了。在 Windows 下安裝 JRE (Java Runtime Environment) 的時候,安裝文件會將 .jar 文件映射給 javaw.exe 打開。那么,對于一個可執(zhí)行的 JAR 文件包,用戶只需要雙擊它就可以運行程序了,和閱讀 .chm 文檔一樣方便 (.chm 文檔默認是由 hh.exe 打開的)。那么,現(xiàn)在的關(guān)鍵,就是如何來創(chuàng)建這個可執(zhí)行的 JAR 文件包。
創(chuàng)建可執(zhí)行的 JAR 文件包,需要使用帶 cvfm 參數(shù)的 jar 命令,同樣以上述 test 目錄為例,命令如下:
jar cvfm test.jar manifest.mf test
這里 test.jar 和 manifest.mf 兩個文件,分別是對應(yīng)的參數(shù) f 和 m,其重頭戲在 manifest.mf。因為要創(chuàng)建可執(zhí)行的 JAR 文件包,光靠指定一個 manifest.mf 文件是不夠的,因為 MANIFEST 是 JAR 文件包的特征,可執(zhí)行的 JAR 文件包和不可執(zhí)行的 JAR 文件包都包含 MANIFEST。關(guān)鍵在于可執(zhí)行 JAR 文件包的 MANIFEST,其內(nèi)容包含了 Main-Class 一項。這在 MANIFEST 中書寫格式如下:
Main-Class: (一定要加一個空格)可執(zhí)行主類全名(包含包名)
例如,假設(shè)上例中的 Test.class 是屬于棚擾 test 包的,而且是可執(zhí)行的類 (定義了 public static void main(String) 方法),那么這個 manifest.mf 可以編輯如下:
Main-Class: (再次提醒,一定要加一個空格test.Test
我浪費了十分鐘在這個空格上面,不然在執(zhí)行jar命令的時候會提示
java.io.IOException: invalid header field
這個 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且該行以一個回車符結(jié)束即可。創(chuàng)建了 manifest.mf 文件之后,我們的目錄結(jié)構(gòu)變?yōu)椋?/p>
==
|– test
| `– Test.class
`– manifest.mf
這時候,需要到 test 目錄的上級目錄中去使用 jar 命令來創(chuàng)建 JAR 文件包。也就是在目錄樹中使用“==”表示的那個目錄中,使用如下命令:
jar cvfm test.jar manifest.mf test
之后在“==”目錄中創(chuàng)建了 test.jar,這個 test.jar 就是執(zhí)行的 JAR 文件包。運行時只需要使用 java -jar test.jar 命令即可。
需要注意的是,創(chuàng)建的 JAR 文件包中需要包含完整的、與 Java 程序的包結(jié)構(gòu)對應(yīng)的目錄結(jié)構(gòu),就像上例一樣。而 Main-Class 指定的類,也必須是完整的、包含包路徑的類名,如上例的 test.Test;而且在沒有打成 JAR 文件包之前可以使用 java 來運行這個類,即在上例中 java test.Test 是可以正確運行的 (當然要在 CLASSPATH 正確的情況下)。
3. jar 命令詳解
jar 是隨 JDK 安裝的,在 JDK 安裝目錄下的 bin 目錄中,Windows 下文件名為 jar.exe,Linux 下文件名為 jar。它的運行需要用到 JDK 安裝目錄下 lib 目錄中的 tools.jar 文件。不過我們除了安裝 JDK 什么也不需要做,因為 SUN 已經(jīng)幫我們做好了。我們甚至不需要將 tools.jar 放到 CLASSPATH 中。
使用不帶任何的 jar 命令我們可以看到 jar 命令的用法如下:
jar {ctxu} 文件名 …
其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一個,它們分別表示:
-c 創(chuàng)建新的 JAR 文件包
-t 列出 JAR 文件包的內(nèi)容列表
-x 展開 JAR 文件包的指定文件或者所有文件
-u 更新已存在的 JAR 文件包 (添加文件到 JAR 文件包中)
中的選項可以任選,也可以不選,它們是 jar 命令的選項參數(shù)
-v 生成詳細報告并打印到標準輸出
-f 指定 JAR 文件名,通常這個參數(shù)是必須的
-m 指定需要包含的 MANIFEST 清單文件
-0 只存儲,不壓縮,這樣產(chǎn)生的 JAR 文件包會比不用該參數(shù)產(chǎn)生的體積大,但速度更快
-M 不產(chǎn)生所有項的清單(MANIFEST〕文件,此參數(shù)會忽略 -m 參數(shù)
即需要生成、查看、更新或者解開的 JAR 文件包,它是 -f 參數(shù)的附屬參數(shù)
即 MANIFEST 清單文件,它是 -m 參數(shù)的附屬參數(shù)
表示轉(zhuǎn)到指定目錄下去執(zhí)行這個 jar 命令的操作。它相當于先使用 cd 命令轉(zhuǎn)該目錄下再執(zhí)行不帶 -C 參數(shù)的 jar 命令,它只能在創(chuàng)建和更新 JAR 文件包的時候可用?! ?/p>
文件名 … 指定一個文件/目錄列表,這些文件/目錄就是要添加到 JAR 文件包中的文件/目錄。如果指定了目錄,那么 jar 命令打包的時候會自動把該目錄中的所有文件和子目錄打入包中。
下面舉一些例子來說明 jar 命令的用法:
1) jar cf test.jar test
該命令沒有執(zhí)行過程的顯示,執(zhí)行結(jié)果是在當前目錄生成了 test.jar 文件。如果當前目錄已經(jīng)存在 test.jar,那么該文件將被覆蓋。
2) jar cvf test.jar test
該命令與上例中的結(jié)果相同,但是由于 v 參數(shù)的作用,顯示出了打包過程,如下:
標明清單(manifest)
增加:test/(讀入= 0) (寫出= 0)(存儲了 0%)
增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%)
3) jar cvfM test.jar test
該命令與 2) 結(jié)果類似,但在生成的 test.jar 中沒有包含 META-INF/MANIFEST 文件,打包過程的信息也略有差別:
增加:test/(讀入= 0) (寫出= 0)(存儲了 0%)
增加:test/Test.class(讀入= 7) (寫出= 6)(壓縮了 14%)
4) jar cvfm test.jar manifest.mf test
運行結(jié)果與 2) 相似,顯示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 內(nèi)容不同,是包含了 manifest.mf 的內(nèi)容
5) jar tf test.jar
在 test.jar 已經(jīng)存在的情況下,可以查看 test.jar 中的內(nèi)容,如對于 2) 和 3) 生成的 test.jar 分別應(yīng)該此命令,結(jié)果如下;
對于 2)
META-INF/
META-INF/MANIFEST.MF
test/
test/Test.class
對于 3)
test/
test/Test.class
6) jar tvf test.jar
除顯示 5) 中顯示的內(nèi)容外,還包括包內(nèi)文件的詳細信息,如:
0 Wed Jun 19 15:39:06 GMT 2023 META-INF/
86 Wed Jun 19 15:39:06 GMT 2023 META-INF/MANIFEST.MF
0 Wed Jun 19 15:33:04 GMT 2023 test/
7 Wed Jun 19 15:33:04 GMT 2023 test/Test.class
7) jar xf test.jar
解開 test.jar 到當前目錄,不顯示任何信息,對于 2) 生成的 test.jar,解開后的目錄結(jié)構(gòu)如下:
==
|– META-INF
| `– MANIFEST
`– test
`–Test.class
8) jar xvf test.jar
運行結(jié)果與 7) 相同,對于解壓過程有詳細信息顯示,如:
創(chuàng)建:META-INF/
展開:META-INF/MANIFEST.MF
創(chuàng)建:test/
展開:test/Test.class
9) jar uf test.jar manifest.mf
在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 來查看 test.jar 可以發(fā)現(xiàn) test.jar 中比原來多了一個 manifest。這里順便提一下,如果使用 -m 參數(shù)并指定 manifest.mf 文件,那么 manifest.mf 是作為清單文件 MANIFEST 來使用的,它的內(nèi)容會被添加到 MANIFEST 中;但是,如果作為一般文件添加到 JAR 文件包中,它跟一般文件無異。
10) jar uvf test.jar manifest.mf
與 9) 結(jié)果相同,同時有詳細信息顯示,如:
增加:manifest.mf(讀入= 17) (寫出= 19)(壓縮了 -11%)
4. 關(guān)于 JAR 文件包的一些技巧
1) 使用 unzip 來解壓 JAR 文件
在介紹 JAR 文件的時候就已經(jīng)說過了,JAR 文件實際上就是 ZIP 文件,所以可以使用常見的一些解壓 ZIP 文件的工具來解壓 JAR 文件,如 Windows 下的 WinZip、WinRAR 等和 Linux 下的 unzip 等。使用 WinZip 和 WinRAR 等來解壓是因為它們解壓比較直觀,方便。而使用 unzip,則是因為它解壓時可以使用 -d 參數(shù)指定目標目錄。
在解壓一個 JAR 文件的時候是不能使用 jar 的 -C 參數(shù)來指定解壓的目標的,因為 -C 參數(shù)只在創(chuàng)建或者更新包的時候可用。那么需要將文件解壓到某個指定目錄下的時候就需要先將這具 JAR 文件拷貝到目標目錄下,再進行解壓,比較麻煩。如果使用 unzip,就不需要這么麻煩了,只需要指定一個 -d 參數(shù)即可。如:
unzip test.jar -d dest/
2) 使用 WinZip 或者 WinRAR 等工具創(chuàng)建 JAR 文件
上面提到 JAR 文件就是包含了 META-INF/MANIFEST 的 ZIP 文件,所以,只需要使用 WinZip、WinRAR 等工具創(chuàng)建所需要 ZIP 壓縮包,再往這個 ZIP 壓縮包中添加一個包含 MANIFEST 文件的 META-INF 目錄即可。對于使用 jar 命令的 -m 參數(shù)指定清單文件的情況,只需要將這個 MANIFEST 按需要修改即可。
3) 使用 jar 命令創(chuàng)建 ZIP 文件
有些 Linux 下提供了 unzip 命令,但沒有 zip 命令,所以需要可以對 ZIP 文件進行解壓,即不能創(chuàng)建 ZIP 文件。如要創(chuàng)建一個 ZIP 文件,使用帶 -M 參數(shù)的 jar 命令即可,因為 -M 參數(shù)表示制作 JAR 包的時候不添加 MANIFEST 清單,那么只需要在指定目標 JAR 文件的地方將 .jar 擴展名改為 .zip 擴展名,創(chuàng)建的就是一個不折不扣的 ZIP 文件了,如將上一節(jié)的第 3) 個例子略作改動:
linux解壓jar壓縮文件的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux解壓jar壓縮文件,使用Linux解壓縮jar壓縮文件:詳細步驟,Linux添加、修改、刪除jar包內(nèi)文件,linux下生成jar包的命令行工具是什么,有哪位大俠有總結(jié)么,求分享??!的信息別忘了在本站進行查找喔。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。
當前標題:使用Linux解壓縮jar壓縮文件:詳細步驟 (linux解壓jar壓縮文件)
標題路徑:http://m.fisionsoft.com.cn/article/cdgiphj.html


咨詢
建站咨詢
