我需要一个库,它可以获取java -jar --aaa=a --bbb=b ---ccc=c
形式的命令行选项,并返回一个数组,其值可以作为argsArray['aaa'], argsArray['bbb']
等访问。
是否有一些带有示例的库可以执行此操作?
答案 0 :(得分:4)
Java中命令行选项的一个很棒的解析器是Apache Commons CLI。
选项可以包含或不包含参数,可以是可选的或必需的,您可以为每个参数设置说明以获取使用帮助。一个简短的示例用法:
public static void main(String[] args) {
Options options = new Options();
try {
options.addOption(OptionBuilder.withArgName("help").hasArgs(0).withDescription("Prints this help message.").isRequired(false).create("h"));
options.addOption(OptionBuilder.withArgName("debug logging").hasArgs(0).withDescription("Enable debug logging").isRequired(false).create("1"));
CommandLineParser parser = new PosixParser();
CommandLine cmd = parser.parse(options, args);
if (cmd.hasOption("h")) {
new HelpFormatter().printHelp(400, "load_page_spool.sh", "OPTIONS", options, "Loads crawl data from pages pool, updating FRONTIER, HISTORY and PageTable", true);
return;
}
....
} catch (MissingOptionException e) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("LoadPageSpool", options);
}
}
答案 1 :(得分:0)
另一个简单的解决方案可能是this article中提供的辅助类。
答案 2 :(得分:0)
如果按特定顺序保留它们,可以从作为main方法参数的字符串数组中访问它们。
http://download.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html
答案 3 :(得分:0)
解析命令行的另一个选项是jcommander。我自己没有使用它,但网站上的例子看起来很好用,也很容易使用。