1

Apache common-cli 在其网站上有一个ls命令示例:

options.addOption( "a", "all", false, "do not hide entries starting with ." );
options.addOption( "A", "almost-all", false, "do not list implied . and .." );
options.addOption( "b", "escape", false, "print octal escapes for nongraphic " + "characters" );
options.addOption( OptionBuilder.withLongOpt( "block-size" )
                                .withDescription( "use SIZE-byte blocks" )
                                .hasArg()
                                .withArgName("SIZE")
                                .create() );

这显示了这样的帮助:

-a, --all                  do not hide entries starting with .
-A, --almost-all           do not list implied . and ..
-b, --escape               print octal escapes for nongraphic characters
    --block-size=SIZE      use SIZE-byte blocks
  1. 当我编写此代码时,它显示--block-size <SIZE>. 我想展示这样的东西:(-z,--block-size=SIZE不仅仅是长选项)。
  2. PosixParser和有什么区别GnuParser?我在代码中更改了它们,我没有观察到任何差异。
  3. 例如,当我提供错误选项时,h它没有throw任何ParseException. 程序正常启动和结束。
4

1 回答 1

5
  1. 示例中的块大小选项只有一个长格式,这就是为什么没有显示短选项的原因。如果你添加一个短别名,你会得到你期望的结果

  2. PosixParser并且GnuParser在最新版本的 Commons CLI 中已弃用。新的统一解析器可用作DefaultParser. posix 解析器能够解析连接的短选项,例如tar -zxvf foo.tar.gz.

  3. 额外选项要么作为应用程序的参数处理,要么触发异常,具体取决于stopAtNonOption解析器参数的值。

于 2012-05-29T12:14:48.280 回答