Java und die Kommandozeile

Wer mit Java programmiert musste sicher schon einmal für eine Java Applikation die Kommandozeilenparameter auslesen. Wenn man nun nicht das Rad immer wieder neu erfinden will, sollte man zu erst einen Blick auf die Apache commons Bibliothek werfen.

Tut man das, so wird man dort auch für das Kommandozeilenproblem fündig. Die Lösung heißt – Apache commons – CLI. Die Bibliothek hilft nicht nur beim Auslesen der Kommandozeilenparameter, sondern bietet auch gleich die Möglichkeit eine Hilfe für die Verwendung der Parameter zu generieren.

Ein kleines Beispiel, sagt mehr als 1000 Worte
1.) Installation

  • downloaden und auspacken
  • commons-cli-1.0.jar in den CLASS_PATH aufnehmen

2.) Definition der Optionen

Options options = new Options();

Option help = new Option( "help", "print this message" );
Option optDescription = OptionBuilder.withArgName( "string" )
   .hasArg()
   .withDescription(  "use given description for incident" )
   .create( "description" ); 
Option optLongDescription = OptionBuilder.withArgName( "string" )
   .hasArg()    
   .withDescription(  "use given description for incident" )
   .create( "longDescription" );

options.addOption(help);
options.addOption(optDescription);
options.addOption(optLongDescription);

3.) Parsen der Kommandozeilenargumente

CommandLineParser parser = new GnuParser();
CommandLine line = parser.parse( options, args );

4.) Auslesen von Optionen ohne Argumente

if(line.hasOption("h")) {
   // Ausgabe der Hilfe
}

5.) Auslesen von Optionen mit Argumenten

String description="";
String longDescription="";

if( line.hasOption( "description" ) ) {
   description = line.getOptionValue( "description" );
   log.debug("Description: "+description);
}

if( line.hasOption( "longDescription" ) ) {
   longDescription = line.getOptionValue( "longDescription" );
   log.debug("Long Description: "+longDescription);
}

6.) Ausgabe für die Hilfe generieren

HelpFormatter formatter = new HelpFormatter();
formatter.printHelp( "ant", options );

7.) fertig -> einfach schön oder schön einfach 🙂

ein Kommentar

  1. Dirk · · Antwort

    Das hab ich gesucht….
    Nach C++, Perl, PHP ist Java gar nicht so schwer zu lernen, scheint es 🙂

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: