■ args4j
http://args4j.kohsuke.org/ダウンロード
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22args4j%22%20AND%20a%3A%22args4j%22Gradle
compile 'args4j:args4j:2.33'
■ サンプル
import org.kohsuke.args4j.CmdLineException; import org.kohsuke.args4j.CmdLineParser; import org.kohsuke.args4j.Option; public class ServiceConfig { @Option(name = "-p", aliases="--port", required=false, usage="Port") private int port; @Option(name = "-t", aliases="--threads", required=false, usage="Max Threads") private int maxThreads; @Option(name="-d", aliases="--debug", required=false, usage="debug option") private boolean isDebug; @Option(name="-h", aliases="--help", required=false, usage="debug option") private boolean hasHelp; public int getPort() { return this.port; } public void setPort(int port) { this.port = port; } public int getMaxThreads() { return this.maxThreads; } public void setMaxThreads(int maxThreads) { this.maxThreads = maxThreads; } public boolean isDebug() { return this.isDebug; } public void setDebug(boolean isDebug) { this.isDebug = isDebug; } public static void main(String[] args) { ServiceConfig serviceConfig = new ServiceConfig(); String[] args1 = {"-p", "18080", "-t", "10", "--debug"}; CmdLineParser parser = new CmdLineParser(serviceConfig); try { parser.parseArgument(args1); } catch (CmdLineException ex) { ex.printStackTrace(); return; } parser.printSingleLineUsage(System.out); System.out.println(); parser.printUsage(System.out); System.out.println(); System.out.println("Port:" + serviceConfig.getPort()); System.out.println("MaxThreads:" + serviceConfig.getMaxThreads()); System.out.println("Debug:" + serviceConfig.isDebug); } }出力結果
[-d (--debug)] [-p (--port) N] [-t (--threads) N] -d (--debug) : debug option (default: true) -p (--port) N : Port (default: 18080) -t (--threads) N : Max Threads (default: 10) Port:18080 MaxThreads:10 Debug:true