■ 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