2017-01-09 67 views
1

我正在尝试使用Apache Commons CLI来识别我的java程序的参数。所以,有很多选项(例如“-p”),但大多数情况下,应该用作java程序输入的文件名称。请注意,所有选项都没有订单限制。Commons CLI:识别文件名* .deca

decac -p -r 5 test.deca

我解析-p和-r(与参数“5”)的选择没有问题,但我如何创建“测试选项:启动程序的

例.deca“知道它可以是任何东西。它也可能是像pathTo/anotherTest.deca

+0

后来就被用来描述使用的参数选项@亚伦看来它会解决我的问题。仍然不会以更一般的方式解决问题(多个文件名),但应该为我工作!谢谢! – Fitz

+0

不客气,我觉得很奇怪,这是没有记录在他们的使用场景 – Aaron

+0

我认为它以一般方式解决了这个问题:这个列表应该包含任何不能被'CommandLineParser'解析的标记,所以对于'decac -p other.file -r 5 test.deca and.another',它应该包含'other.file','test.deca'和'and.another'。 – Aaron

回答

0

我认为这是不可能与ApacheCommonsCLI开箱即用。你可以根据this answer做一些技巧,也可以作为apache CLI documentation

Option decafile = OptionBuilder.withArgName("file.deca") 
          .hasArg() 
          .withDescription( "target deca file") 
          .create("decafile"); 

,可以用-dfile.deca或--decafile = file.deca

+0

不是我的解决方案,因为我无法改变输入参数的方式。感谢你的回答! – Fitz