JAVA 命令行工具 参数分析样例

apache的commons-cli 1.2 提供的功能,挺方便,做个笔记先


...
public boolean parseOptions() throws ParseException {
Options options = new Options();

Option option = new Option("n", "name", true, "the name of this node");
options.addOption(option);

option = new Option("f", "conf-file", true, "specify a conf file");
options.addOption(option);

option = new Option("h", "help", false, "display help text");
options.addOption(option);

CommandLineParser parser = new GnuParser();
CommandLine commandLine = parser.parse(options, args);

if (commandLine.hasOption('f')) {
configurationFile = new File(commandLine.getOptionValue('f'));

if (!configurationFile.exists()) {
// If command line invocation, then need to fail fast
if (System.getProperty(Constants.SYSPROP_CALLED_FROM_SERVICE) == null) {
String path = configurationFile.getPath();
try {
path = configurationFile.getCanonicalPath();
} catch (IOException ex) {
logger.error("Failed to read canonical path for file: " + path, ex);
}
throw new ParseException(
"The specified configuration file does not exist: " + path);
}
}
}

if (commandLine.hasOption('n')) {
nodeName = commandLine.getOptionValue('n');
}

if (commandLine.hasOption('h')) {
new HelpFormatter().printHelp("flume-ng node", options, true);

return false;
}

return true;
}
...
发布了40 篇原创文章 · 获赞 0 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lancefox/article/details/84440737
今日推荐