0

阿帕奇共CLI有一個例子爲ls命令:使用Apache共CLI來解析在其網站上的參數

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. PosixParserGnuParser有何區別?我在代碼中更改了 他們,我沒有觀察到任何區別。
  3. 當我提供錯誤的選項,例如h它不throw任何ParseException。該程序正常啓動並結束。
+1

提供一個「z」短的選項,然後;現在沒有一個,那爲什麼要顯示一個呢? –

+0

主要例子中沒有'z'選項。我也想顯示'z'選項。我想知道如何寫'z'也可用。 –

+0

您是否閱讀過它的任何文檔API?或者只是嘗試一些? –

回答

4
  1. 例子中的塊大小選項只有一個長格式,這就是爲什麼沒有顯示出有短選項。如果添加一個簡短別名,您將得到期望的結果

  2. PosixParserGnuParser在最新版本的Commons CLI中不推薦使用。一個新的統一解析器可用於DefaultParser。 posix語法分析器有能力解析連接的短期選項,如tar -zxvf foo.tar.gz

  3. 其他選項可作爲參數處理或觸發異常,具體取決於解析器參數stopAtNonOption的值。