我正在使用命令
$ jar cvf a.jar -C ../bin/ ../bin/a.class ../bin/b.class
Run Code Online (Sandbox Code Playgroud)
输出是:
adding: ../bin/a.class(in = 0) (out= 0)(stored 0%)
adding: b.class(in = 0) (out= 0)(stored 0%)
Run Code Online (Sandbox Code Playgroud)
-C 选项不适用于第一个文件,但适用于第二个文件。可能是什么问题?
您似乎对命令行选项感到困惑。用法是:
Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
-C change to the specified directory and include the following file
Run Code Online (Sandbox Code Playgroud)
(注意在选项的帮助中包含以下文件-C
。)当您说:
jar cvf a.jar -C ../bin/ ../bin/a.class ../bin/b.class
Run Code Online (Sandbox Code Playgroud)
它寻找../bin/../bin/a.class
并../bin/b.class
导致您观察到的行为。要么说:
jar cvf a.jar ../bin/a.class ../bin/b.class
Run Code Online (Sandbox Code Playgroud)
或者
jar cvf a.jar -C ../bin/ a.class -C ../bin/ ../bin/b.class
Run Code Online (Sandbox Code Playgroud)
要包含目录中的所有文件../bin/
,请说:
jar cvf a.jar -C ../bin/ .
Run Code Online (Sandbox Code Playgroud)