1

我在一個文件夾「D:\ Workspaces \ Workspace \打包程序到JAR文件\ src」中寫了一個HelloWorld類。我正在嘗試創建一個包含此HelloWorld.class文件的Jar文件,後面跟着this tutorial。所以我打開了src目錄下的cmd並執行了下面的命令。從命令行創建JAR文件時,爲什麼會得到這個奇怪的輸出?

jar cv HelloWorld.jar HelloWorld.class 

我得到這個:

D:\Workspaces\Workspace\Packaging Programs i 
nto JAR Files\src>jar cv HelloWorld.jar HelloWorld.class 
HelloWorld.jar : no such file or directory 
δ╗£H     ♦ META-INF/■╩ ♥  ☻  PK♥ δ╗£H   ¶ ME 
K-*╬╠╧│R0╘3ασr.JM,IM╤u¬♦  ÿδ↓─¢[*h°↨%&τñ*8τ↨§Σ↨%û òk≥r±r☺ P╖îqëC D PK♥ 
c╖£H   ► HelloWorld.classmPMK├@►}█|515╡╡⌡│P☼B¶1ŧ/éx(*D⌠α)iù▓%╔JL¶⌂û 
▲¶<°♥ⁿQΓl¶é╨à▌Ö}≤▐╠█²·■°♦päü♥‼₧ì6VÜΦ8Φb╒B╧Bƒ┴<▬Ö(N↑4⌂∩åA?òS╬αìE╞/╩4µ∙u¶'äΦi$2å╛⌂ 
7₧GÅQÉD┘ï\d│æ↕:í,≤  ?‼è∞¥≤$æ╖2Oªçèφ┬B╙┬Üïul0┤¬≥┴≡I◄v,l║╪┬6⌡¿e♀φz╠e<τôΓ▼¶>?¶< 
┌d∟♀6e♥èîó▒*♫÷B ↓ª╙¼@EYé√G▌%⌐BφW4:┌←⌠ÜεT]5Ω¬‼╥¬ª,* P♥ èY!☺ ⌐☺ PK δ╗£H ☻ 
     ♦    META-INF/■╩ PK☺☻¶ δ╗£H╖îqëC D ¶    = ME 
TA-INF/MANIFEST.MFPK☺☻¶ c╖£H♥ èY!☺ ⌐☺ ►    ┬ HelloWorld.classPK♣♠ 
    ♥ ♥ ╗ !☻ 
D:\Workspaces\Workspace\Packaging Programs i 
nto JAR Files\src> 

這究竟是爲什麼?我犯了一個錯誤嗎?

+1

它應該是'jar cf',而不是'jar cv'。 –

+0

@BethanyLouise但是從我在問題中鏈接到的文檔中,「f選項表示您希望輸出到文件而不是stdout」。 - 但是如果我不關心該文件,並希望輸出到輸出流呢?我正在學習,並希望單獨嘗試每個選項,以便我理解它。 – Solace

+3

爲什麼你想輸出你的JAR檔案到系統中? –

回答

4

你缺少-f參數,它告訴JAR工具來輸出到一個文件,而不是控制檯:

jar cvf HelloWorld.jar HelloWorld.class 

更新:

你可以達到同樣的效果如上-f標誌通過告訴JAR將輸出發送到標準輸出,然後重定向到您想要的實際JAR文件。因此,下面將完成與上述相同的:

jar cv HelloWorld.class > HelloWorld.jar 

應當注意的是,管道從JAR輸出到一個輸出文件是OS的一個功能,不是Java的特徵。

+0

謝謝你的回答。但是從我在問題中鏈接到的文檔中,「f選項表示您希望輸出到文件而不是stdout」。 - 但是如果我不關心該文件,並希望輸出到輸出流呢?我正在學習,並希望單獨嘗試每個選項,以便我理解它。 – Solace

相關問題