Befehlszeilen-Parsing in Java

Haider Ali 12 Oktober 2023
Befehlszeilen-Parsing in Java

In diesem Artikel wird beschrieben, wie Sie die Befehlszeilenanalyse in Java ausführen.

Befehlszeilen-Parsing in Java

Manchmal benötigen wir zum Ausführen von Java-Programmen einige grundlegende Eingaben, bevor wir das Programm ausführen. Normalerweise werden diese Eingaben durch Befehlszeilenargumente bereitgestellt. In Java werden Befehlszeilenargumente in String[] args innerhalb der Funktion main() gespeichert.

Um Argumente von der Terminal-/Eingabeaufforderung zu akzeptieren, müssen wir Optionen im Java-Programm definieren. Jedes übergebene Befehlszeilenargument muss in Optionen gespeichert werden. Im folgenden Codebeispiel implizieren die beiden erstellten Optionen das Phänomen des Kopierens und Einfügens. Siehe die Erklärung.

import org.apache.commons.cli.*;
public class Main {
  public static void main(String[] args) throws Exception {
    Options options = new Options(); // Options Arguments which are Acceptable By Program.
    Option source = new Option("s", "source", true, "source file path");
    source.setRequired(true);
    options.addOption(source);
    Option destination = new Option("d", "Destination", true, "Destination file Path");
    destination.setRequired(true);
    options.addOption(destination);

    CommandLineParser parser = new BasicParser();
    // use to read Command Line Arguments
    HelpFormatter formatter = new HelpFormatter(); // // Use to Format
    CommandLine cmd = null;

    try {
      cmd = parser.parse(
          options, args); // it will parse according to the options and parse option value
    } catch (ParseException e) {
      System.out.println(e.getMessage());
      formatter.printHelp("utility-name", options);

      System.exit(1);
    }

    String argument1 = cmd.getOptionValue("source");
    String argument2 = cmd.getOptionValue("Destination");

    System.out.println(argument1);
    System.out.println(argument2);
  }
}

Es gibt zwei Optionen, die im obigen Programm erstellt wurden. Einer ist die Quelle, der andere das Ziel. Beim Erstellen der Quelloption haben wir ihr kurzfristiges Argument als s zugewiesen und ihre Quelle benannt. Das s ist ein Befehl, der den Wert von Quellargumenten erhält. Beim Ausführen des Programms muss der Benutzer -s als Befehl gefolgt von seinem Wert verwenden. Siehe die Ausgabe unten. Außerdem haben wir die Anforderung auf true gesetzt und die Beschreibung als Quelldateipfad angegeben. Später haben wir dieses Quelloptionsargument in Options hinzugefügt. In ähnlicher Weise haben wir mit der Option destination dasselbe mit unterschiedlichen Werten durchgeführt.

Um diese beiden Optionen zu parsen, haben wir ein Objekt von CommandLineParser erstellt. Mit Hilfe von HelpFormatter haben wir die Befehlsargumente formatiert, wenn wir die Ausnahme anzeigen mussten.

Innerhalb der Methode try...catch mit parse() zum Parsen mit den Parametern options und args. Dann erhalten wir einfach die Werte der Option mit getOptionValue() und übergeben den Namen der Optionen in Klammern.

Wir drucken einfach die Werte. Auf der anderen Seite können Sie mit diesem Ansatz verschiedene Programme ausführen.

Um das Programm auszuführen, müssen wir die folgenden Befehle verwenden.

javac
    - cp 'org.apache.commons.cli-1.2.0.jar' Main.java

          java
    - cp 'org.apache.commons.cli-1.2.0.jar' Main.java - s 'D://textfile.txt'
    - d 'D://DuplicatFolder//'

Hier sind -s und -d die Befehle. Auf beide folgen jeweils ihre Werte. Zum Beispiel werden wir im obigen Programm den Quellpfad für s und das Ziel für d setzen.

Das obige Programm gibt die folgende Ausgabe aus.

D : // textfile.txt
    D: // DuplicatFolder//
Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn