Heim Java javaLernprogramm So verwenden Sie Befehlszeilenargumente in Java

So verwenden Sie Befehlszeilenargumente in Java

Jan 19, 2019 am 10:46 AM

So verwenden Sie Befehlszeilenparameter in Java: Führen Sie zuerst die Java-Anwendung über das Terminalfenster aus und übergeben Sie dann die Parameter an den Startpunkt der Anwendung.

So verwenden Sie Befehlszeilenargumente in Java

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer, Java Version 8.0.

Befehlszeilenparameter können eine Möglichkeit sein, Konfigurationseigenschaften für eine Anwendung anzugeben, und Java bildet da keine Ausnahme. Sie können Java-Anwendungen über ein Terminalfenster ausführen, anstatt auf das Anwendungssymbol im Betriebssystem zu klicken. Zusätzlich zum Anwendungsnamen können eine Reihe von Parametern folgen, die dann an den Startpunkt der Anwendung (d. h. die Hauptmethode im Fall von Java) übergeben werden.

NetBeans verfügt beispielsweise über eine Reihe von Startparametern, die an die Anwendung übergeben werden können, wenn sie über ein Terminalfenster ausgeführt wird (z. B. gibt -jdkhome die zu verwendende JDK-Version an, die nicht mit der verknüpft ist). (Standard-JDK der NetBeans-Anwendung).

Hauptmethode

Sehen wir uns die Hauptmethode an, um zu sehen, wo die an die Anwendung übergebenen Parameter angezeigt werden:

public static void main(String[] args)
{
...do something here
}
Nach dem Login kopieren

Befehlszeilenparameter sind in Ordnung. Finden Sie Argumente im String-Array mit dem Namen.

Betrachten wir zum Beispiel eine Anwendung namens CommandLineArgs, deren einzige Aktion darin besteht, die an sie übergebenen Befehlszeilenargumente auszugeben:

public class CommandLineArgs {
    public static void main(String[] args) {
        //检查字符串数组是否为空
        if (args.length == 0)
        {
            System.out.println("There were no commandline arguments passed!");
        }
        //对于字符串数组中的每个字符串
        //打印出字符串。
        for(String argument: args)
        {
            System.out.println(argument);
        }
    }
}
Nach dem Login kopieren

Syntax für Befehlszeilenargumente

Die Java Runtime Engine (JRE) erwartet, dass Parameter gemäß einer bestimmten Syntax übergeben werden, wie unten gezeigt:

java ProgramName value1 value2
Nach dem Login kopieren

Oben ruft „java“ die JRE auf, gefolgt vom Namen des Programms Du rufst an. Als nächstes folgen alle Parameter für das Programm. Es gibt keine Begrenzung für die Anzahl der Argumente, die ein Programm annehmen kann, aber die Reihenfolge ist wichtig. Die JRE übergibt Parameter in der Reihenfolge, in der sie in der Befehlszeile erscheinen. Betrachten Sie zum Beispiel den obigen Codeausschnitt:

public class CommandLineArgs2 {

    public static void main(String[] args) {
        if (args.length == 0)
        {
            System.out.println("There were no commandline arguments passed!");
        }
Nach dem Login kopieren

Wenn Argumente an ein Java-Programm übergeben werden, ist args[0] das erste Element des Arrays (Wert1 oben) und args[1] das zweite Element ( Wert2) und so weiter. Der length()-Code 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 Befehlszeilenargumente an:

Klicken Sie mit der rechten Maustaste auf den Ordner „Projekte“ im Fenster „Projekte“.

Wählen Sie die Option „Eigenschaften“, um das Projekteigenschaftenfenster zu öffnen.

Wählen Sie in der Liste „Kategorien“ auf der rechten Seite „Ausführen“ aus.

Geben Sie im angezeigten Textfeld „Argumente“ die Befehlszeilenargumente an, die an die Anwendung übergeben werden sollen. Wenn wir beispielsweise Apple Banana Carrot in das Textfeld „Argumente“ eingeben und das oben aufgeführte CommandLineArgs-Programm ausführen, erhalten wir die Ausgabe:

Apple
Banana
Carrot
Nach dem Login kopieren

Befehlszeilenargumente werden analysiert

Normalerweise wird ein Befehlszeilenargument übergeben, das einige Informationen darüber enthält, was mit dem übergebenen Wert geschehen soll. Parameter, die die Anwendung von Parametern mitteilen, haben normalerweise einen oder zwei Bindestriche vor ihrem Namen. Das NetBeans-Beispiel zum Angeben eines Startparameters für den JDK-Pfad lautet beispielsweise -jdkhome.

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

public class CommandLineArgs {
//命令行参数:
// -打印输出输出它后面的所有参数
//addnumbers在后面添加所有的数字参数
public static void main(String[] args) {
//检查字符串数组是否为空
if (args.length == 0)
{
System.out.println("There were no commandline arguments passed!");
}
else
{
  // 设置一些初始变量
boolean printout = false;
boolean addNumbers = false;
boolean validNumbers = true;
int total = 0;
for(String argument: args)
{
if(argument.equals("-addnumbers"))
{
printout = false;
addNumbers = true;
}
else if (argument.equals("-printout"))
{
printout = true;
addNumbers = false;
}
else if (addNumbers)
{
try {
total = total + Integer.parseInt(argument);
} catch (NumberFormatException e) {
System.out.println("arguments passed with -addnumbers " + "must be integers!");
validNumbers = false;
addNumbers = false;
}
}
else if (printout)
{
System.out.println(argument);
}
}
if (validNumbers)
{
System.out.println("The total of the number arguments is: " + total);
}
}
}
}
Nach dem Login kopieren

Der obige Code gibt die Argumente entweder aus oder fügt sie hinzu (wenn es sich um Ganzzahlen handelt). Mit diesem Befehlszeilenargument werden beispielsweise Zahlen hinzugefügt:

java CommandLineArgs -addnumbers 11 22 33 44
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Befehlszeilenargumente in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Was ist der Unterschied zwischen Speicherlecks in Java -Programmen auf Arm- und X86 -Architektur -CPUs? Was ist der Unterschied zwischen Speicherlecks in Java -Programmen auf Arm- und X86 -Architektur -CPUs? Apr 19, 2025 pm 11:18 PM

Analyse des Gedächtnis -Leck -Phänomens von Java -Programmen zu verschiedenen Architektur -CPUs. In diesem Artikel wird ein Fall erläutert, in dem ein Java -Programm unterschiedliche Gedächtnisverhalten auf ARM- und X86 -Architektur -CPUs aufweist ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Apr 19, 2025 pm 01:57 PM

Wie konvertieren Sie Namen in Zahlen, um Sortieren innerhalb von Gruppen zu implementieren? Bei der Sortierung von Benutzern in Gruppen ist es häufig erforderlich, den Namen des Benutzers in Zahlen umzuwandeln, damit er anders sein kann ...

Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie unterscheidet man in der Back-End-Entwicklung die Verantwortlichkeiten der Serviceschicht und der DAO-Schicht? Wie unterscheidet man in der Back-End-Entwicklung die Verantwortlichkeiten der Serviceschicht und der DAO-Schicht? Apr 19, 2025 pm 01:51 PM

Erörterung der hierarchischen Architektur in der Back-End-Entwicklung. In der Back-End-Entwicklung ist die hierarchische Architektur ein gemeinsames Designmuster, in der es normalerweise Controller, Service und DAO drei Ebenen ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

See all articles