我在一个文件夹“D:\ Workspaces \ Workspace \ Packaging Programs into JAR Files \ src”中写了一个HelloWorld类。我正在尝试在this tutorial之后创建一个包含此HelloWorld.class文件的Jar文件。所以我在src目录中打开了cmd并执行了以下命令。
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>
为什么会这样?我犯了错误吗?
答案 0 :(得分:4)
您缺少-f
参数,该参数告诉JAR工具输出到文件而不是控制台:
jar cvf HelloWorld.jar HelloWorld.class
<强>更新强>
通过告诉JAR将输出发送到标准输出,然后重定向到您想要的实际JAR文件,您可以获得与上面没有 -f
标志的相同的结果。因此,以下内容将完成与上述相同:
jar cv HelloWorld.class > HelloWorld.jar
应该注意的是,将JAR的输出管道输出到输出文件是操作系统的一个特性,而不是Java的一个特性。