Commons-cli-first-application

提供:Dev Guides
移動先:案内検索

Apache Commons CLI-最初のアプリケーション

使用したオプションに基づいて、渡された数値の合計または渡された数値の乗算のいずれかを取得することを目的とした、サンプルコンソールベースのアプリケーションを作成しましょう。

CLITesterという名前のJavaクラスを作成します。

*CLITester.java*
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class CLITester {
   public static void main(String[] args) throws ParseException {

     //***Definition Stage***
     //create Options object
      Options options = new Options();

     //add option "-a"
      options.addOption("a", false, "add numbers");

     //add option "-m"
      options.addOption("m", false, "multiply numbers");

     //***Parsing Stage***
     //Create a parser
      CommandLineParser parser = new DefaultParser();

     //parse the options passed as command line arguments
      CommandLine cmd = parser.parse( options, args);

     //***Interrogation Stage***
     //hasOptions checks if option is present or not
      if(cmd.hasOption("a")) {
         System.out.println("Sum of the numbers: " + getSum(args));
      } else if(cmd.hasOption("m")) {
         System.out.println("Multiplication of the numbers: " + getMultiplication(args));
      }
   }

   public static int getSum(String[] args) {
      int sum = 0;
      for(int i = 1; i < args.length ; i++) {
         sum += Integer.parseInt(args[i]);
      }
      return sum;
   }

   public static int getMultiplication(String[] args) {
      int multiplication = 1;
      for(int i = 1; i < args.length ; i++) {
         multiplication *= Integer.parseInt(args[i]);
      }
      return multiplication;
   }
}

出力

-aをオプションと数値として渡しながらファイルを実行し、結果として数値の合計を取得します。

java CLITester -a 1 2 3 4 5
Sum of the numbers: 15

-mをオプションおよび数値として渡しながらファイルを実行し、結果として数値の乗算を取得します。

java CLITester -m 1 2 3 4 5
Multiplication of the numbers: 120