1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Flexibles Kommandozeilen-Parameter Handling

  • adebar
  • 10. September 2008 um 15:27
  • Unerledigt
  • adebar
    2
    adebar
    Mitglied
    Punkte
    40
    Beiträge
    5
    • 10. September 2008 um 15:27
    • #1

    Hallo!

    Ich arbeite zur Zeit an einem Kommandozeilen Programm in Java.

    Dass man die Kommandozeilen-Parameter in Java als String-Array (String[] args) bekommt, ist mir klar.

    Wenn man allerdings viele (optionale) Parameter hat, die auch in beliebiger Reihenfolge angegeben werden sollen, ist ein String-Array recht unpraktisch. Ich hätte gerne irgendeine Datenstruktur, mit der ich schnell überprüfen kann ob ein Parameter angegeben wurde, bzw. welchen Wert er hat (z. B.: "java -jar meinprogramm.jar foo=1000 bar=10").

    Im Prinzip ist das ja keine übermäßig komplizierte Sache, nur hab ich keine Lust, das Rad neu zu erfinden... :cool:

    Gibt's da irgendwelche Klassen? Wie macht ihr das?! :confused:

    LG,
    M

  • leny
    5
    leny
    Mitglied
    Reaktionen
    2
    Punkte
    237
    Beiträge
    40
    • 10. September 2008 um 15:52
    • #2

    Ich verwende den hier:

    http://commons.apache.org/cli/

    Es gibt aber jede Menge andere, einfach googeln.

  • Paulchen
    1
    Paulchen
    Gast
    • 10. September 2008 um 15:55
    • #3

    Du hast eine beliebig lange Liste an Parametern, die alle die Struktur "key=value" haben? Dann würd ich das spontan alles in eine Map werfen, zum Beispiel:

    Code
    Map<String,String> arguments=new HashMap<String,String>();
    for (String arg : args) {
        String[] parts=arg.split("="); /* TODO: Fall parts.length!=2 berücksichtigen */
        arguments.put(parts[0],parts[1]);
    }
    
    
    if(arguments.containsKey("foo")) {
        String fooValue=arguments.get("foo");
        /* ... */
    }
    Alles anzeigen

    Im Übrigen sind, wenn man in Java nicht das Rad neu erfinden will, die Apache Commons recht interessant, zum Beispiel http://commons.apache.org/cli/.

  • adebar
    2
    adebar
    Mitglied
    Punkte
    40
    Beiträge
    5
    • 12. September 2008 um 21:35
    • #4

    Danke!

    Genau so was hab ich gesucht...

    LG,
    M

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Tags

  • java
  • cli
  • command line
  • kommandozeile
  • parameter

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English