Caused by: org.apache.commons.cli.MissingArgumentException: Missing argument f/h/s/v......
阿新 • • 發佈:2021-02-04
今日在做一個基於Command CLI通過命令列控制引數的小模組,在輸入-f引數後,報出這個錯誤:
Caused by: org.apache.commons.cli.MissingArgumentException: Missing argument f
仔細查閱後發現錯誤原因
在addOption()的時候是按照普通模式進行的,而我的需求是要在引數 -f 後面加 2個 目標檔案,例如:-f E:\file1.txt E:\file2.txt
查閱資料後發現普通模式不能滿足這種需求,於是找到了合適的addOption()方案:
於是按照這種方案進行輸入引數和目標檔案
-f E:\file1.txt,E:\file2.txt
然後就成功執行了
比葫蘆畫瓢,按照這個模式,將其中的valueSeparator(’,’)改為valueSeparator(’ '),即逗號改為空格,應該就能這樣輸入引數和目標檔案了(IDEA好像有優化,就算不改,輸入目標檔案的時候用空格分隔也沒有問題)
-f E:\file1.txt E:\file2.txt
問題就這樣解決了…
但是緊接著就又出現了一個錯誤:
Caused by: org.apache.commons.cli.MissingArgumentException: Missing argument s
我就想,這不是跟上面的一樣嗎,但是我這個引數的需求是不需要目標檔案的,於是看了一眼addOption()
好傢伙,不需要後接引數,結果設為了hasArg:true,於是就改為false,問題就全部解決了。