我正在尝试使用 commons-cli 创建一个简单的参数解析器,但我似乎无法弄清楚如何创建以下选项:
java ... com.my.path.to.MyClass producer
java ... com.my.path.to.MyClass consumer -j 8
我的程序的第一个参数应该是producer
or consumer
,定义我的程序将运行的模式。如果它处于consumer
模式下,我想要一个-j
参数来定义要服务的线程数。
这是我到目前为止所得到的:
Options options = new Options();
options.addOption("mode", false, "Things.");
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("startup.sh", options);
当我打印出这些选项时,mode
参数显示为-mode
.
在 Python 中argparse
,我只需执行以下操作:
parser = argparse.ArgumentParser()
parser.add_argument('mode', choices=('producer', 'consumer'), required=True)
parser.print_help()
这正是我正在寻找的。如何在 commons-cli 中执行此操作?