Spring boot非web项目,主要目的是用作shell来发送电子邮件消息。 Uasge:
send-email-shell-0.0.1-SNAPSHOT.jar -to foo@bar.com -subject "hello world" -attach /tmp/pom.xml
但我发现其实的论点是
[-to, foo@bar.com, -subject, hello, world, -attach, /tmp/pom.xml]
并且因为我想将args转换为map,奇数索引是键,甚至索引是值,所以我先检查args长度,如果args.length%2!=0
将抛出Exception
。那么我怎样才能正确处理主题内容?
答案 0 :(得分:1)
请参阅docs
参数用=
$ java -jar myproject.jar --spring.config.name=myproject
所以试试
$ java -jar send-email-shell-0.0.1-SNAPSHOT.jar -to=foo@bar.com -subject="hello world"
答案 1 :(得分:0)
谢谢@SMA 以下是我建议的方式
Map<String,String> map = new HashMap<>();
String key = null;
for (int i = 0; i < args.length; i++) {
if(args[i].startsWith("-")){
key = args[i].replaceFirst("-+", ""); // -from --> from
map.put(key, null);
}else{
map.put(key, (map.get(key)==null?"":map.get(key)+" ")+args[i]);
}
}
参数是
[-to, foo@bar.com, -subject, hello, world]
地图是
{subject=hello world, to=foo@bar.com}