0

以下に示すように、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
       }
4

1 に答える 1

1

次のようにOptionBuilderを使用できます。

Option iplist = OptionBuilder
                .withArgs() // option has unlimited argument
                .withDescription("Provide name of server where program can listen IP,PORT")
                .withLongOption("iplist") // means start with -- 
                .create()

また見てください:

https://commons.apache.org/proper/commons-cli/usage.html

http://apache-commons.680414.n4.nabble.com/cli-Example-using-of-option-with-two-mandatory-arguments-td3321524.html

于 2016-04-26T19:03:25.807 に答える