Verwenden von Befehlszeilenargumenten in Java

Befehlszeilenargumente können eine Möglichkeit sein, Konfigurationseigenschaften für eine Anwendung anzugeben, und Java ist nicht anders. Anstatt auf ein Anwendungssymbol des Betriebssystems zu klicken, können Sie das ausführen Java Anwendung aus einem Terminalfenster. Zusammen mit dem Anwendungsnamen können eine Reihe von Argumenten folgen, die dann an den Startpunkt der Anwendung übergeben werden (d. H. Die Hauptmethode im Fall von Java).

Beispielsweise, NetBeans hat eine Anzahl von Startparametern, die an die Anwendung übergeben werden können, wenn sie über ein Terminalfenster ausgeführt wird (z.

Gibt eine Version des JDK an, die anstelle des Standard-JDK verwendet werden soll, das der NetBeans-Anwendung zugeordnet ist.

Die Hauptmethode

Lassen Sie uns das untersuchen Hauptmethode um zu sehen, 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 an sie übergebenen Befehlszeilenargumente auszudrucken:

instagram viewer
ö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, z.

Java ProgramName value1 value2

Oben ruft "java" die JRE auf, gefolgt vom Namen des Programms, das Sie aufrufen. Darauf folgen Argumente für das Programm. Die Anzahl der Argumente, die ein Programm annehmen kann, ist unbegrenzt, aber die Reihenfolge ist kritisch. Die JRE übergibt die Argumente in der Reihenfolge, in der sie in der Befehlszeile angezeigt werden. Betrachten Sie beispielsweise dieses Code-Snippet 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) usw. Der Code args.length () definiert die Länge des Arrays.

Übergeben von Befehlszeilenargumenten

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, erhalten wir die Ausgabe:

Analysieren der Befehlszeilenargumente

In der Regel wird ein Befehlszeilenargument mit Informationen darüber übergeben, was mit dem übergebenen Wert zu tun ist. Das Argument, das die Anwendung darüber informiert, wofür das Argument bestimmt ist, hat normalerweise einen oder zwei Bindestriche vor seinem Namen. Das NetBeans-Beispiel für den Startparameter, der den JDK-Pfad angibt, lautet beispielsweise

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

Das Code oben druckt entweder die Argumente oder addiert sie, wenn sie ganze Zahlen sind. Dieses Befehlszeilenargument würde beispielsweise die folgenden Zahlen hinzufügen:

java CommandLineArgs -addnumbers 11 22 33 44