微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

apache commons cli:如果不包含参数,则将下一个Option作为参数

如何解决apache commons cli:如果不包含参数,则将下一个Option作为参数

我想传递命令行参数。 但是,在这种情况下,如果“ -a”后跟“ -b”,我希望解析器接受“ -b”作为参数,而不希望包含-b。有一个简单的方法吗? 这就是我所拥有的。

import org.apache.commons.cli.*;
Option remove = new Option("a",true,"a option");
        remove.setrequired(false);
        remove.setoptionalArg(false);
        options.addOption(remove);

Option trim = new Option("b",false,"b option");
        trim.setrequired(false);
        trim.setoptionalArg(true);
        options.addOption(trim);

CommandLineParser parser = new DefaultParser();
CommandLine cmd;

try {
   cmd = parser.parse(options,args);
} catch (ParseException ex) {
   setErrorMessage();
   return;
}

解决方法

我最终以一种很怪异的方式解决了这个问题。 我只会检查“ a”之后的内容,如果是“ b”,则不添加“ b”选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。