Verwenden von Befehlszeilenargumenten in einer Java-Anwendung

Mit Befehlszeilenargumenten können Konfigurationseigenschaften für eine Anwendung angegeben werden, und Java ist nicht anders. Anstatt auf ein Anwendungssymbol im Betriebssystem zu klicken, können Sie die Java-Anwendung über ein Terminalfenster ausführen. Zusammen mit dem Anwendungsnamen kann eine Reihe von Argumenten folgen, die dann an den Startpunkt der Anwendung übergeben werden (d. H. Die Hauptmethode im Fall von Java)..

NetBeans verfügt beispielsweise über eine Reihe von Startparametern, die an die Anwendung übergeben werden können, wenn sie in einem Terminalfenster ausgeführt wird (z.,

Gibt eine Version des JDK an, die anstelle des mit der NetBeans-Anwendung verknüpften Standard-JDK verwendet werden soll..

Die Hauptmethode

Untersuchen wir die Hauptmethode, um festzustellen, wo die an eine Anwendung übergebenen Argumente angezeigt werden:

Die Befehlszeilenargumente finden Sie in der

namens

Betrachten wir zum Beispiel eine Anwendung namens

Die einzige Aktion besteht darin, die übergebenen Befehlszeilenargumente auszudrucken:

öffentliche Klasse CommandLineArgs  
   public static void main (String [] args) 
// Überprüfen Sie, ob das String-Array leer ist
if (args.length == 0)

System.out.println ("Es wurden keine Befehlszeilenargumente übergeben!");
       // Für jeden String im String-Array
// drucke den String aus.
for (String argument: args)

System.out.println (Argument);


 

Syntax von Befehlszeilenargumenten

Die Java Runtime Engine (JRE) erwartet, dass Argumente nach einer bestimmten Syntax übergeben werden:

Java ProgramName value1 value2

Oben ruft "java" die JRE auf, gefolgt vom Namen des aufgerufenen Programms. Daran schließen sich Argumente zum Programm an. Es gibt keine Begrenzung für die Anzahl der Argumente, die ein Programm annehmen kann, aber die Reihenfolge ist kritisch. Die JRE übergibt die Argumente in der Reihenfolge, in der sie in der Befehlszeile angezeigt werden. Betrachten Sie beispielsweise diesen Codeausschnitt von oben:

öffentliche Klasse CommandLineArgs2  
   public static void main (String [] args) 
if (args.length == 0)

System.out.println ("Es wurden keine Befehlszeilenargumente übergeben!");

Wenn Argumente an ein Java-Programm übergeben werden, ist args [0] das erste Element des Arrays (Wert1 oben), args [1] das zweite Element (Wert2) und so weiter. Der Code args.length () definiert die Länge des Arrays.

Befehlszeilenargumente übergeben

In NetBeans können wir Befehlszeilenargumente übergeben, ohne die Anwendung erstellen und über ein Terminalfenster ausführen zu müssen. So geben Sie die Befehlszeilenargumente an:

  1. Klicken Sie mit der rechten Maustaste auf den Projektordner im
    Projekte
    Fenster.
  2. Wählen Sie das
    Eigenschaften
    Option zum Öffnen 
    Projekteigenschaften
    Fenster. 
  3. In dem
    Kategorien
    Liste auf der rechten Seite, wählen Sie
    Lauf
  4. In dem
    Argumente
    Geben Sie im angezeigten Textfeld die Befehlszeilenargumente an, die Sie an die Anwendung übergeben möchten. Zum Beispiel, wenn wir eintreten
    Apfel-Bananen-Karotte
    in dem
    Argumente
    Textfeld und führen Sie die
    CommandLineArgs
    Programm oben aufgeführt, werden wir die Ausgabe erhalten:

Analysieren der Befehlszeilenargumente

In der Regel wird ein Befehlszeilenargument mit Informationen darüber übergeben, wie mit dem übergebenen Wert verfahren werden soll. Das Argument, das der Anwendung mitteilt, wofür das Argument ist, enthält in der Regel ein oder zwei Bindestriche vor dem Namen. Das NetBeans-Beispiel für den Startparameter, der den JDK-Pfad angibt, lautet beispielsweise

Das bedeutet, dass Sie die Befehlszeilenargumente analysieren müssen, um herauszufinden, was mit den Werten geschehen soll. Es gibt mehrere Java-Befehlszeilen-Frameworks zum Analysieren von Befehlszeilenargumenten. Sie können auch einen einfachen Befehlszeilenparser schreiben, wenn Sie nicht so viele Argumente übergeben müssen:

Der obige Code gibt die Argumente entweder aus oder addiert sie, wenn es sich um Ganzzahlen handelt. Mit diesem Befehlszeilenargument würden beispielsweise die folgenden Zahlen hinzugefügt:

Java CommandLineArgs -Addnumbers 11 22 33 44