commons-cli を使用して単純な引数パーサーを作成しようとしていますが、次のオプションを作成する方法がわかりません。
java ... com.my.path.to.MyClass producer
java ... com.my.path.to.MyClass consumer -j 8
プログラムへの最初の引数は、 または のいずれproducer
か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 でこれを行うにはどうすればよいですか?