jar 、war、ear_在命令行上操作JAR,WAR和EAR
jar 、war、ear
盡管Java IDE和許多圖形工具使查看和操作Java歸檔文件(JAR,WAR和EAR)文件的內容比以往更加容易,但有時我還是更喜歡使用命令行jar命令來完成這些任務。 當我必須重復做某事或作為腳本的一部分來做時,尤其如此。 在本文中,我將研究如何使用jar命令來創建,查看和操作Java歸檔文件。
JAR文件將主要在本文中使用,但我在.jar文件上演示的命令與.war和.ear文件一致。 還要記住, JAR格式基于ZIP格式,因此可用于處理ZIP文件的眾多工具可以應用于JAR,WAR和EAR文件。 還應記住, jar選項傾向于鏡像tar的選項 。
對于我的示例,我想打包并使用一些.class文件。 下一個屏幕快照演示將一些Java源代碼文件( .java文件)編譯為.class文件。 這些文件的實際來源對于本次討論無關緊要,此處未顯示。 在本文中,我已經展示了在沒有IDE的情況下進行編譯,這與使用命令行工具保持一致。
準備要在
下一個屏幕快照顯示了我的.class文件已被編譯并準備好包含在JAR中。
創建一個JAR文件
jar命令提供的“ c ”選項指示它創建檔案 。 我喜歡在我運行的所有jar命令中使用“ v ”(詳細)和“ f ”(文件名)選項,以便輸出是詳細的(以幫助您了解正在發生的事情,并且它是正在發生的正確事情)因此,可以根據命令的輸入提供適用的JAR / WAR / EAR文件名,而不是根據標準輸入和標準輸出來輸入或輸出。 在創建JAR文件的情況下,選項“ cvf”將創建具有指定名稱( f )的JAR文件( c )并打印出有關此創建的詳細輸出( v )。
下一個屏幕快照展示了jar cvf的最簡單用法。 我將當前目錄更改為“ classes”目錄,因此創建JAR就像運行jar cvf *或jar cvf .一樣簡單jar cvf . 并且當前目錄中的所有文件以及所有子目錄和子目錄中的文件將包含在創建的JAR文件中。 下一個屏幕快照中演示了此過程。
如果我不想在運行jar之前將當前目錄顯式更改為構建JAR的最合適的目錄,則可以使用-C選項指示jar在其創建過程中隱式地執行此操作。 下一個屏幕快照對此進行了演示。
列出檔案的內容
列出(或查看) JAR,WAR或EAR文件的內容可能是我使用jar命令最常執行的功能。 為此,我通常使用選項“ t ”(列出存檔的內容),“ v ”(詳細)和“ f ”(在命令行上指定的文件名)。 下一個屏幕快照演示了如何運行jar tvf MyClasses.jar來查看我生成的JAR文件的內容。
提取存檔文件的內容
有時需要提取存檔文件中包含的一個或多個文件,以處理或查看這些單個文件的內容。 這是通過jar “ x ”(用于提取)選項完成的。 下一個屏幕快照演示了如何使用jar xvf MyClasses.jar提取該JAR文件的所有內容。 請注意,原始的JAR文件保持不變,但現在也可以直接使用其內容。
我通常只需要查看或使用存檔文件的一個或兩個文件。 盡管我可以絕對地提取所有文件,如上一個示例所示,并且僅編輯需要編輯的文件,但是如果文件數量很少,我更喜歡僅提取需要的文件。 使用相同的jar xvf命令可以輕松完成此操作。 通過指定完全限定的文件以在命令中的存檔文件名之后顯式提取,我可以指示
僅提取那些特定文件。 這是有優勢的,因為我不會在目錄中填入我不關心的文件,并且在完成后也不必擔心清理太多。 下一個屏幕快照演示了運行情況
jar xvf MyClasses.jar dustin/examples/jar/GrandParent.class僅提取jar xvf MyClasses.jar dustin/examples/jar/GrandParent.class單個類定義,而不提取該JAR中的所有文件。
更新檔案文件
先前的示例演示了如何為jar命令提供“ c”來創建檔案,“ t”來列出檔案的內容,以及“ x”來提取檔案的內容。 另一個通常執行的功能是更新現有檔案的內容 ,這是通過jar的“ u ”選項完成的。 下一個屏幕快照演示了如何在DOS中使用copy con命令創建一個名為tempfile.txt的文本文件,然后使用jar uvf MyClasses.jar tempfile.txt更新MyClasses.jar并將tempfile.txt添加到該JAR。
如果要更新現有存檔中的文件,可以使用jar xvf提取該文件,根據需要修改該文件,然后使用jar uvf命令將其放回原始JAR中。 新文件將覆蓋同名的現有文件。 下一個屏幕快照對此進行了模擬。
從存檔文件中刪除條目
在閱讀jar手冊頁 , jar的Oracle工具描述或jar的Java Tutorials覆蓋范圍時,看不到從Java歸檔文件中刪除條目的選項,這也許有些令人驚訝。 實現此目的的一種方法是提取JAR的內容,刪除不再需要的文件,并從已刪除這些文件的目錄中重新創建JAR。 但是,一種更簡單的方法是簡單地利用基于ZIP的Java歸檔并使用基于ZIP的工具的刪除功能。
下一個屏幕快照將演示使用的7-Zip(在Windows上)刪除tempfile.txt從MyClasses.jar運行命令7z d MyClasses.jar tempfile.txt 。 請注意,使用zip -d MyClasses.jar tempfile.txt可以在Linux中完成相同的操作。 其他ZIP支持工具也有自己的選擇。
WAR和EAR文件
這篇文章中的所有示例都針對JAR文件,但是這些示例適用于WAR和EAR文件。 作為一個非常簡單的示例,下一個屏幕快照演示了如何使用jar uvf使用新的Web描述符更新WAR文件。 對于本例而言,涉及的實際文件的內容無關緊要。 需要注意的重要一點是,可以以與JAR文件完全相同的方式來操縱WAR文件。 這也適用于EAR文件。
其他
在本文中,我重點介紹了可從命令行對Java存檔文件執行的“ CRUD”操作(創建/讀取/更新/刪除)和提取。 我通常將適用的“ CRUD”操作命令(“ c”,“ t”,“ u”)或提取命令(“ x”)與常用選項“ v”(詳細)和“ f”(Java)結合使用在命令行上明確指定的存檔文件名)。 jar命令支持除這些操作以外的其他操作,例如“ M”(控制清單文件的創建)和“ 0”(控制壓縮)。 我也沒有演示使用“ i”為Java檔案生成索引信息。
有關使用Java存檔的其他資源
我之前引用了這些內容,但為方便起見在此進行了總結。
- Java教程:JAR文件中的打包程序
- jar命令上的Oracle工具文檔
- 罐子男人佩奇
結論
jar命令相對易于使用,在某些情況下可以是創建,查看和修改Java歸檔文件內容的最快方法。 熟悉此命令行工具可以使Java開發人員不時得到回報,尤其是在執行高度重復的任務或涉及腳本的任務時。 IDE和工具(特別是構建工具)在Java存檔文件操作方面可以提供很多幫助,但是有時這些“開銷”要比從命令行使用jar時所需的開銷大得多。
翻譯自: https://www.javacodegeeks.com/2014/12/manipulating-jars-wars-and-ears-on-the-command-line.html
jar 、war、ear
總結
以上是生活随笔為你收集整理的jar 、war、ear_在命令行上操作JAR,WAR和EAR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解压专家安卓版下载(解压war linu
- 下一篇: s8狼人出装和符文(新版本lol狼人打野