CLIを使用したJavaコマンドラインパラメータの解析
最近Javaでデータ抽出のサンプルを書くつもりですが、前回Javaでプログラムを書くのからN(N>4)年が経ちました.を読んだことがなく、今書かれているコードはJava風ではないと深く感じています.....コマンドラインで比較的複雑なパラメータ(argument)を使う必要があるので、CLIライブラリを利用してこのブロックを解決したいと思っています.CLIライブラリのJarファイルはApache Commonsからダウンロードでき、現在成熟しているのはCLI 1.2バージョンです.CLIを使用するには、Options Classのインスタンスオブジェクトを作成する必要があります.
Options Maclean=new Options();
このOptionsオブジェクトによって、コマンドラインプログラムが許容できるパラメータ(argument)を定義することができます.パラメータを追加する方法の1つは、addOptions()メソッドを使用することです.JDUL.addOption("END" ,true, "select the Big or Little Endian");
コマンドラインプログラムに許容パラメータを定義した後、コマンドライン解析器CommandLineParserが入力したパラメータをさらに解析する必要があります.BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(JDUL, args);
次は、完全なコマンドラインパラメータ解析サンプルコードです.package par;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
Options JDUL = new Options();
JDUL.addOption("h" ,false, "Print help for JDUL");
JDUL.addOption("END" ,true, "select the Big or Little Endian");
JDUL.addOption("SSM" ,true, "select MSSM or ASSM");
BasicParser parser = new BasicParser();
CommandLine cl = parser.parse(JDUL, args);
if( cl.hasOption('h') ) {
HelpFormatter f = new HelpFormatter();
f.printHelp("OptionsTip", JDUL);
}
else{
System.out.println(cl.getOptionValue("END"));
System.out.println(cl.getOptionValue("SSM"));
}
}
catch(ParseException e) {
e.printStackTrace();
}
}
}
このコマンドライン解析プログラムを具体的に使用します.C:\Users\maclean>java -jar "C:\Users\maclean\Documents\NetBeansProjects\par\dist\par.jar" -h
usage: OptionsTip
-END <arg>