以下に示すように、Apache commons basic/gnu パーサーを使用してコマンド ライン オプションを解析しています。
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.GnuParser;
CommandLineParser parser = new GnuParser();
CommandLine cmd = parser.parse(options, args);
System.out.println(cmd.getOptionValue("iplist"));
以下のパラメーターリストを使用してプログラムを呼び出しています。
java -jar myjar.jar --iplist 160.1.1.1,3009 160.1.1.1,3003 160.1.1.1,3004
取得している出力は最初の IP アドレスだけです。 --iplist 変数に引数として渡されるポート付きの 3 つの IP アドレスをすべて取得するにはどうすればよいですか?
ここに私が使用しているオプションがあります。
options.addOption("h", "help", false, "show help.");
options.addOption("iplst","iplist", true, "Provide name of server where program can listen IP,PORT");
CommandLineParser parser = new GnuParser();
CommandLine cmd = null;
try {
cmd = parser.parse(options, args);
if (cmd.hasOption("h"))
help();
if (cmd.hasOption("iplist")) {
System.out.println( "Using cli argument --server=" + cmd.getOptionValue("iplistr"));
//Code here
}