main args命令行参数解析,解析格式例子:
- java -jar --server 9091 --username root --password 123456
/**
* 成员属性
*/
public final static String DOUBLE_HORIZONTAL_BAR = "--";
/**
* 成员属性
*/
public static Map<String, String> parse(String... args) {
Map<String, String> parseMap = new HashMap(6);
for (int i = 0; i < args.length; i++) {
//检查是否是双横杠参数,非双横杠continue
if (!args[i].contains(DOUBLE_HORIZONTAL_BAR)) {
continue;
}
//获取双横杠参数对应数据
String commandData = null;
if (i + 1 < args.length && !args[i + 1].contains(DOUBLE_HORIZONTAL_BAR)) {
commandData = args[i + 1];
}
//截取双横杠,获取参数名
String parameter = args[i].substring(2);
//存储参数、数据
parseMap.put(parameter, commandData);
}
return parseMap;
}
/**
* 测试main
*/
public static void main(String[] args) {
args = new String[] {"--configdb", "--server", "9091", "--username", "root", "--password", "123456"};
Map<String, String> parseMap = parse(args);
System.out.println(parseMap);
}