Tüm Seçeneklerin bir String [] girdisinde apache'nin CLI kitaplığına sağlandığını kontrol etmenin standart bir yolunu göremiyorum. Diğer bir deyişle, seçeneklerim komut satırında GEREKLİDİR, aksi halde atmak için bir istisna istiyorum. getOpt() yöntemi argümanlar kısa adı sağlamak gibi görünüyor:Tüm argümanların Apache Commons CLI'da nasıl sağlandığından nasıl emin olunur?
Im çalışıyor BU AÇIK
PosixParser p = new PosixParser();
CommandLine cli=p.parse(options,args);
for(Object o : options.getOptions())
{
Option op = (Option)o;
if(cli.getOptionValue(op.getName()))
throw new ParseException("Missing argument ! " + op.getArgName() + ":"+op.getDescription());
}
GÜNCELLEME ... geçici bir çözüm olarak aşağıdaki fakat deyimi ise bir Nullpointer özel durum alma.
Ancak, op.getName() yerine opt.getLongName() ile değiştirirsem işe yarar!
1) Neden bir seçenek boş ad, henüz boş olmayan bir longname olurdu: Her durumda
.. ben 2 soru var?2) Tüm seçeneklerin String [] sağlandığından emin olmanın bir yolu var mı? Mesela ben çağırmak istiyorum: İşte
if(! options.isAllProvided())
throw new ParseException("You are missing some options ! " + StringUtils.join(userInputArray,','));
Sadece fark ettiğiniz: Kısa adıyla bir seçenek elde etmek için getArgName() veya başka bir yöntem yerine getOpt() öğesini çağırırsınız. – jayunit100