Kommandozeile in Java
Auch schon mal gefragt, wie man mit Java Kommandozeilenprogramme erstellen kann? Muss ja nicht immer grafisch sein…
Nun, die Lösung liegt hier im Parameter der main-Methode:
public static void main( String args[ ] )
Beim Programmstart über die Kommadozeile wird das Feld args (das übrigens auch anders heißen kann, nur „args“ oder auch „argv“ hat sich nunmal durchgesetzt als Standardbezeichnung
mit den einzelnen übergebenen Strings gefüllt. Zum Beispiel spricht
args[ 0 ]
das erste Element an. Hierzu ein kleines, Beispielprogramm:
class Cmd
{
public static void main( String[ ] args )
{
for( String s : args )
System.out.println( s );
if( args[ 0 ].equals( "Test" ) )
System.out.println( "Test" );
else
System.out.println( "NoTest" );
}
}
Zuerst werden alle Parameter ausgegeben, anschließend wird getestet, ob der erste Parameter „Test“ ist; ist er es, wird „Test“ ausgegeben, ansonsten „NoTest“:
$ java Cmd Test
$ java Cmd Test
Test
Test
$ java Cmd Noch ein Test mit mehreren Parametern
Noch
ein
Test
mit
mehreren
Parametern
NoTest
Was passiert jetzt aber, wenn man garnichts übergibt, aber trotzdem versucht, die Elemente anzusprechen? Nun, es gibt eine Exception, die nun wie üböich behandelt werden sollte:
$ java Cmd
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Cmd.main(cmd.java:8)
Also immer schön darauf Acht geben