自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用命令行操作JAR、WAR和EAR文件

開發(fā) 后端
盡管有Java IDE和大量的圖形工具能是你更容易地去查看和處理Java歸檔文件(JAR,WAR,和EAR)。但有時(shí)候我想使用jar的命令行命令去完成這些操作。當(dāng)我不得不做些重復(fù)的任務(wù)或者這些任務(wù)只是腳本的一部分時(shí),使用命令行命令特別適合。在這篇文章里,我著重使用jar命令去創(chuàng)建,查看和處理Java歸檔文件。

盡管有Java IDE和大量的圖形工具能是你更容易地去查看和處理Java歸檔文件(JAR,WAR,和EAR)。但有時(shí)候我想使用jar的命令行命令去完成這些操作。當(dāng)我不得不做些重復(fù)的任務(wù)或者這些任務(wù)只是腳本的一部分時(shí),使用命令行命令特別適合。在這篇文章里,我著重使用jar命令去創(chuàng)建,查看和處理Java歸檔文件。

這篇文章主要使用JAR文件作為例子,但這些我展示的命令同樣適用于.war和.ear文件。我們需要記住,JAR格式是基于ZIP格式的,所以很多處理ZIP文件的工具都適用于JAR,WAR,和EAR文件。同樣需要記住的是jar選項(xiàng)類似于tar的選項(xiàng)。

在我的例子里,我打算去用jar歸檔和處理一些.class文件。下面的屏幕快照展示了編譯一些java源代碼文件(.Java文件)為.class文件。這些文件的實(shí)際源碼和這次討論的內(nèi)容關(guān)系不大,所以不在這展示了。我已經(jīng)在這篇文章里展示了不用IDE直接使用命令行工具來編譯這些文件。

準(zhǔn)備一些文件在jar這個(gè)例子里使用。

下一張屏幕快照展示了我的.class文件已經(jīng)被編譯了 并等待著被打包。

創(chuàng)建一個(gè)JAR文件

jar命令的“c”選項(xiàng)用來創(chuàng)建一個(gè)歸檔。在我運(yùn)行的所有jar命令中,我喜歡使用“v”(verbose)和“f”(filename)選項(xiàng)。目的是輸出更多的信息(幫助看到事情的經(jīng)過和一些正確的過程)和作為命令的一部分提供適當(dāng)?shù)腏AR/WAR/EAR文件名而不是在標(biāo)準(zhǔn)輸入輸出里提供。在創(chuàng)建一個(gè)JAR文件時(shí),使用“cvf”選項(xiàng)會(huì)創(chuàng)建一個(gè)指定名稱(f)的JAR文件并打印出詳細(xì)情況,不過是創(chuàng)建成功。

下一個(gè)屏幕快照展示了一個(gè)使用jar cvf的簡單例子。我進(jìn)把我的目錄切換到“classes”目錄下,目的是使創(chuàng)建一個(gè)JAR跟運(yùn)行jar cvf或者 jar cvf一樣簡單。所有在當(dāng)前目錄下的文件和子目錄下的文件都會(huì)被打包為JAR文件。這個(gè)過程在下個(gè)屏幕快照展示。

如果我不想在運(yùn)行jar命令時(shí)明確地切換我的當(dāng)前目錄到最合適的目錄,我可以使用-c選項(xiàng)指示jar命令明確地去做到上面的效果。

列出歸檔的內(nèi)容

列出(或者查看)一個(gè)JAR,WAR,或者EAR文件的內(nèi)容可能是我最想使用的jar命令功能。我通常使用選項(xiàng)“t”(列出歸檔內(nèi)容),“v”(verbose)和“f”(在命令行指定文件名)來列出文件內(nèi)容。下一個(gè)屏幕快照展示了運(yùn)行命令 jar tvf MyClasses.jar去查看我生成的JAR文件的內(nèi)容。

提取歸檔文件的內(nèi)容

有時(shí)候想在一個(gè)歸檔文件里提取出一個(gè)或者多個(gè)文件來使用或者單獨(dú)查看這些文件的內(nèi)容。使用jar命令的“x”(用來提?。┻x項(xiàng)就可以做到。下一個(gè)屏幕快照展示了使用命令 jar xvf MyClasses.jar 去提出JAR文件的所有內(nèi)容。注意,原始的JAR文件原封不動(dòng),但是,現(xiàn)在它的內(nèi)容全都可以直接獲取到。

我有時(shí)僅僅需要去查看獲取使用歸檔文件中的一個(gè)或者兩個(gè)文件。盡管我可以明確地把它們?nèi)继崛〕鰜砭庉嬑倚枰庉嫷奈募?,就像在上面那個(gè)例子展示的一樣。但是我想僅僅去提取我需要的少量文件。使用命令jar xvf命令就可以輕松做到。通過在文件名后指定特定的權(quán)限定名,我可以僅提取出我指定的文件。這有一個(gè)好處:我不用被我不需要的文件占滿了我的目錄并且在我完事后不需要費(fèi)心去清理無用文件。下一個(gè)屏幕快照展示了運(yùn)行命令jar xvf MyClasses.jar dustin/examples/jar/GrandParent.class去提取一個(gè)單一的文件,而不是提取全部文件。

更新歸檔文件

之前的例子已經(jīng)展示了提供“c”選項(xiàng)給jar命令去創(chuàng)建了一個(gè)歸檔,提供“t”選項(xiàng)列出歸檔內(nèi)容,和提供“x”選項(xiàng)去提取一個(gè)歸檔內(nèi)容。另一個(gè)經(jīng)常使用的功能是更新一個(gè)存在的歸檔內(nèi)容,這使用jar的“u”選項(xiàng)來完成。下一個(gè)屏幕快照展示了創(chuàng)建一個(gè)叫tempfile.txt的文本文件(在DOS里使用copy con 命令)然后使用jar uvf MyClasses.jar tempfile.txt去更新MyClass.jar并把tempfile.txt添加到JAR里

如果你想在一個(gè)已存在的歸檔里更新一個(gè)文件,我可以使用jar xvf命令來提取出那個(gè)文件,然后按照你的意圖修改它,***使用jar uvf命令把它放回原始的JAR里。新的文件會(huì)把里面已存在的同名文件覆蓋掉。這個(gè)實(shí)現(xiàn)在下一個(gè)屏幕快照里有。

從歸檔文件里刪除數(shù)據(jù)

當(dāng)你閱讀jar幫助手冊,Oracle jar工具描述,或者Java教程中的jar部分時(shí),看到從一個(gè)Java歸檔文件里刪除數(shù)據(jù)而不使用選項(xiàng),你會(huì)感到驚訝。實(shí)現(xiàn)這種功能的一種方式是去提取出一個(gè)JAR文件的內(nèi)容,刪除不要的文件,使用刪除文件后剩下的文件去重新創(chuàng)建一個(gè)JAR包。但是有一個(gè)更簡單的方法就是簡單地利用Java歸檔格式基于ZIP的優(yōu)勢并使用ZIP工具的刪除功能。

下一個(gè)屏幕快照展示了使用7-ZIP(在Window下)通過 7z d MyClasses.jar tempfile.txt命令從MyClass.jar刪除tempfile.txt。注意,同樣的事情在Linux可以使用zip -d MyClasses.jar tempfile.txt命令來完成。其他的ZIP支持工具用它們自己的選項(xiàng)。

WAR和EAR文件

在這篇文章里的所有例子都是針對JAR文件,但這些例子是處理WAR和EAR文件的。z作為一個(gè)最簡單的例子,下一個(gè)屏幕快照展示了使用命令jar uvf去更新一個(gè)新的web描述到WAR文件。文件的實(shí)際內(nèi)容對這個(gè)例子的影響不大。重點(diǎn)是明白這:一個(gè)WAR文件可以像處理JAR文件一樣被操作。這同樣適用于EAR文件。

其他的jar的操作和選項(xiàng)

在這篇文章里,我側(cè)重于“CRUD”操作(創(chuàng)建/讀取/更新/刪除)和一些能夠從命令行提出Java歸檔的功能。我通常使用適當(dāng)?shù)?ldquo;CRUD”操作命令(“c”,“t”,“u”)或者提取命令(“x”)和“v”(verbose)還有“f”(在命令行指定Java歸檔文件名)命令選項(xiàng)一起使用。jar命令除了支持這些操作外還有“M”(控制Mainfest文件創(chuàng)建)和“o”(控制壓縮)命令。我還沒展示使用“i”命令為Java歸檔生成索引信息。

處理Java歸檔文件的其額外資源

下面是我之前引用的一些資料,為了方便,我總結(jié)在這里。

總結(jié)

jar命令時(shí)相對易用的,并能夠快速的創(chuàng)建、查看和修改Java歸檔文件內(nèi)容。熟悉這些命令行工具能為Java開發(fā)者節(jié)省時(shí)間,尤其是在進(jìn)行頻繁的重復(fù)任務(wù)或者腳本任務(wù)時(shí)。IDE和工具(特別是創(chuàng)建工具)對操作Java歸檔文件很有幫助,但有時(shí)使用它們比使用jar命令行的花銷更大。

原文鏈接: marxsoftware 翻譯: ImportNew.com 唐小娟

譯文鏈接: http://www.importnew.com/14000.html

 

責(zé)任編輯:張偉 來源: ImportNew
相關(guān)推薦

2012-03-08 10:03:11

JavaClass

2012-11-20 16:16:05

Windows

2021-03-20 21:43:17

LibreOffice命令行開源

2022-08-14 19:19:14

Linux

2013-12-03 09:23:06

命令行網(wǎng)速

2020-07-23 08:00:09

安全 惡意軟件技術(shù)

2019-06-17 09:30:50

命令行Windows 10管理密碼

2024-11-18 15:05:34

MySQL數(shù)據(jù)庫

2010-05-18 15:06:46

Subversion命

2010-05-18 16:05:24

2010-05-18 15:48:03

2010-04-09 16:26:20

Unix操作系統(tǒng)

2010-05-17 15:41:26

2019-10-17 18:00:00

Linuxfind命令xargs命令

2016-01-04 15:17:50

Linux命令行硬件

2021-07-08 08:56:30

Linux命令刪除用戶

2014-06-09 10:23:20

2018-01-24 15:42:49

命令功能程序

2010-08-25 21:03:38

命令行DHCP

2023-03-28 08:40:22

命令行JSON用法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號