1

Apache common-cliのWebサイトには、次の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表示されませthrowParseException。プログラムは正常に開始および終了します。
4

1 に答える 1

5
  1. この例のブロックサイズオプションには長い形式しかないため、短いオプションは表示されていません。短いエイリアスを追加すると、期待どおりの結果が得られます

  2. PosixParserGnuParserCommonsCLIの最新バージョンでは非推奨です。新しい統合パーサーは、として利用できますDefaultParser。posixパーサーには、のような連結された短いオプションを解析する機能がありましたtar -zxvf foo.tar.gz

  3. stopAtNonOption追加のオプションは、パーサーパラメーターの値に応じて、アプリケーションへの引数として処理されるか、例外をトリガーします。

于 2012-05-29T12:14:48.280 に答える