1

Ich schrieb eine HelloWorld-Klasse in einem Ordner "D: \ Workspaces \ Workspace \ Packaging Programme in JAR-Dateien \ src". Ich versuche, eine Jar-Datei zu erstellen, die diese HelloWorld.class-Datei enthält, die this tutorial folgt. Also habe ich cmd im Verzeichnis src geöffnet und den folgenden Befehl ausgeführt.Warum bekomme ich diese seltsame Ausgabe beim Erstellen einer JAR-Datei über die Befehlszeile?

jar cv HelloWorld.jar HelloWorld.class 

ich diese bekam:

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> 

Warum ist das passiert? Habe ich einen Fehler gemacht?

+1

Es sollte 'jar cf' sein, nicht' jar cv'. –

+0

@BethanyLouise Aber aus dem Dokument, mit dem ich in der Frage verlinkt habe: "Die f-Option zeigt an, dass die Ausgabe in eine Datei und nicht in stdout gehen soll." - Aber was passiert, wenn mir die Datei egal ist und die Ausgabe in den Ausgabestrom gehen soll? Ich lerne und wollte jede Option einzeln ausprobieren, so dass ich es gut verstehe. – Solace

+3

Warum möchten Sie Ihr JAR-Archiv auf System ausgeben? –

Antwort

4

Sie vermissen den -f Parameter, der die JAR-Tool Ausgabe in eine Datei erzählt, anstatt die Konsole:

jar cvf HelloWorld.jar HelloWorld.class 

Update:

Sie könnten das gleiche Ergebnis wie oben erreichen, ohne Das -f Flag, indem JAR angewiesen wird, die Ausgabe an die Standardausgabe zu senden und dann in die gewünschte JAR-Datei umzuleiten. Daher würden die folgenden das gleiche erreichen wie oben:

jar cv HelloWorld.class > HelloWorld.jar 

Es sollte beachtet werden, dass die Ausgabe von JAR in eine Ausgabedatei kochend ist eine Funktion des Betriebssystems und nicht eine Funktion von Java.

+0

Danke für die Antwort. Aber aus dem Dokument, mit dem ich in der Frage verlinkt habe: "Die Option f gibt an, dass die Ausgabe in eine Datei und nicht in eine Standardausgabe gehen soll." - Aber was passiert, wenn mir die Datei egal ist und die Ausgabe in den Ausgabestrom gehen soll? Ich lerne und wollte jede Option einzeln ausprobieren, so dass ich es gut verstehe. – Solace