1.处理命令行参数:apache commons cli
http://commons.apache.org/proper/commons-cli/index.html
小例子:
//解析
private static CommandLine parseCommandLine(String[] args) throws ParseException {
Options options = new Options();
OptionBuilder.withLongOpt("help");
OptionBuilder.withDescription("Displays this help message");
options.addOption(OptionBuilder.create('h'));
OptionBuilder.withLongOpt(PORT);
OptionBuilder.hasArg();
OptionBuilder.withArgName("web server port");
OptionBuilder.isRequired();
options.addOption(OptionBuilder.create('p'));
OptionBuilder.withLongOpt(LOGDIR);
OptionBuilder.hasArg();
OptionBuilder.withArgName("log directory");
OptionBuilder.isRequired();
options.addOption(OptionBuilder.create('l'));
OptionBuilder.withLongOpt(LOAD_FROM_DB);
OptionBuilder.withDescription("Load trades from DB (instead of from Oasys cache) on startup");
OptionBuilder.isRequired(false);
options.addOption(OptionBuilder.create('d'));
OptionBuilder.withLongOpt(ADMIN_HTTP_PORT);
OptionBuilder.hasArg();
OptionBuilder.withArgName("Admin http port");
Option httpPortOption = OptionBuilder.create('a');
options.addOption(httpPortOption);
CommandLineParser parser = new PosixParser();
CommandLine cmd = null;
cmd = parser.parse(options, args);
// If the user only wants to see the help message
if (cmd.hasOption("h")) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("SomeService", options);
System.exit(0);
}
return cmd;
}
//调用
cmd.getOptionValue(OPTION_ADMIN_HTTP_PORT);
cmd.hasOption(LOAD_FROM_DB);