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