Ich schreibe Befehlszeilenanwendung in Java und ich habe Apache Commons CLI gewählt, um Eingabeargumente zu analysieren.Commons CLI erforderliche Gruppen
Nehmen wir an, ich habe zwei erforderliche Optionen (dh. -Input und -output). Ich erstelle ein neues Option-Objekt und setze das erforderliche Flag. Für jetzt ist alles gut. Aber ich habe dritte, nicht erforderliche Option, dh. -Hilfe. Mit den Einstellungen, die ich erwähnt habe, wenn der Benutzer Hilfe anzeigen möchte (benutze die Option -help), heißt es "-input and -output" sind erforderlich. Gibt es eine Möglichkeit, dies zu implementieren (über Commons CLI API, nicht einfach, wenn (! HasOption) neue XXXException()) werfen.
Ok. Aber wie kann ich sagen, dass ich das Spiel nicht gefunden habe? ("und wenn keine Übereinstimmung gefunden wird")? Wenn ich das erforderliche Flag setze, bekomme ich ParseExeception, aber wenn ich eine Option übergebe, die nicht verfügbar ist, bekomme ich auch ParseException :(Wie kann ich diese Fälle unterscheiden? – pavel
Sie wissen, ob Sie eine Übereinstimmung gefunden haben, wenn 'commandline.getOptions()' isn ' t leer –
Ok Es ist eine mögliche Lösung, aber was ist mit der Handhabung nicht unterstützter Optionen? Verfügbare Optionen sind -help, -input, -output. Benutzer puts -test. Dann muss ich zuerst überprüfen (mit Hilfe) um festzustellen, ob Hilfe gefunden oder nicht.Wenn nicht oder UnrecognizedOptionException ausgelöst wurde, dann muss ich zweite Reihe von Optionen analysieren? So einfach versuchen {parsefirstSet() if (not_found) parseSecondSet() catch (ParserException) {parseSecondSet()}? Bin ich etwas fehlt oder es ist das, was Sie vorgeschlagen haben.Thanks für Hilfe btw :) – pavel