jar -C 选项似乎不起作用

Vik*_*per 3 java jar

我正在使用命令

$ 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 选项不适用于第一个文件,但适用于第二个文件。可能是什么问题?

dev*_*ull 5

您似乎对命令行选项感到困惑。用法是:

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)