Java-Programm mit Argumenten starten: Unterschied zwischen den Versionen
(Wir zeigen dir hier auf einfache Weise, wie man ein Java-Programm mit Argumenten startet und den passenden Quellcode dazu.) |
K |
||
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Bereits | + | Bereits beim Start eines Java-Programms kann man durch Übergabe von [[Argument|Argumenten]] Daten in das Programm einschleusen, die es verarbeiten kann. |
==Start mit Argumenten== | ==Start mit Argumenten== | ||
− | Ein Java-Programm wird durch Aufruf des Java-Interpreters gestartet, dem man den Klassennamen der Klasse übergibt, die die main()-Methode enthält. Beispielhaft daher hier noch mal ein Aufruf: | + | Ein Java-Programm wird durch Aufruf des [[Java]]-[[Interpreter|Interpreters]] gestartet, dem man den Klassennamen der [[Klasse]] übergibt, die die main()-[[Methode]] enthält. Beispielhaft daher hier noch mal ein Aufruf: |
− | + | java HelloWorld | |
− | Die main()-Methode stellt für die Eingabe von Argumenten ein String-Array bereit. Schauen wir uns noch einmal die Signatur der main()-Methode an: | + | Die main()-Methode stellt für die Eingabe von Argumenten ein {{JAPI|String}}-[[Array]] bereit. Schauen wir uns noch einmal die [[Signatur]] der main()-Methode an: |
− | < | + | <syntaxhighlight lang="java">public static void main(String[] args)</syntaxhighlight> |
− | Sie ist <code>public</code>, damit auf sie von überall auf sie zugegriffen werden kann. Sie ist <code>static</code>, weil | + | Sie ist <code>public</code>, damit auf sie von überall auf sie zugegriffen werden kann. Sie ist <code>static</code>, weil zum Zeitpukt des Programmstarts noch keine [[Objekt|Objekte]] instanziiert wurden, auf denen Methoden aufgerufen werden könnten. Sie liefert nichts (<code>void</code>) zurück. |
Sie erwartet optional in ihrer Methodensignatur ein String-Array, welches oftmals <code>args</code> benannt wird. Der Name des Arrays spielt keine Rolle. Genauso gut könnte er auch <code>eingabe</code> lauten. | Sie erwartet optional in ihrer Methodensignatur ein String-Array, welches oftmals <code>args</code> benannt wird. Der Name des Arrays spielt keine Rolle. Genauso gut könnte er auch <code>eingabe</code> lauten. | ||
Im obigen Beispiel des Aufrufs des Java-Interpreters werden keine Argumente für die main()-Methode mitgegeben. Das wollen wir jetzt nachholen und schauen uns einen Aufruf mit Übergabe von Argumenten an: | Im obigen Beispiel des Aufrufs des Java-Interpreters werden keine Argumente für die main()-Methode mitgegeben. Das wollen wir jetzt nachholen und schauen uns einen Aufruf mit Übergabe von Argumenten an: | ||
− | + | java HelloWorld Byte-Welt Besucher | |
Direkt nach dem Klassennamen des zu startenden Programms werden also eins oder mehrere von einem Leerzeichen getrennte Argumente übergeben. | Direkt nach dem Klassennamen des zu startenden Programms werden also eins oder mehrere von einem Leerzeichen getrennte Argumente übergeben. | ||
− | ==Programmcode mit Verarbeitung von Argumenten== | + | ==Programmcode mit Verarbeitung einer fixen Anzahl und Reihenfolge von Argumenten== |
Im vorigen Kapitel haben wir einen Aufruf eines Java-Programms mit Übergabe von Argumenten gesehen. Schauen wir uns den möglichen Code des Java-Programms mit Verarbeitung der Argumente dazu an. | Im vorigen Kapitel haben wir einen Aufruf eines Java-Programms mit Übergabe von Argumenten gesehen. Schauen wir uns den möglichen Code des Java-Programms mit Verarbeitung der Argumente dazu an. | ||
− | < | + | <syntaxhighlight lang="java"> |
public class HelloWorld { //unsere HelloWorld-Klasse | public class HelloWorld { //unsere HelloWorld-Klasse | ||
public static void main(String[] args) { //unsere main()-Methode | public static void main(String[] args) { //unsere main()-Methode | ||
Zeile 31: | Zeile 31: | ||
} | } | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
− | Wenn wir nun das Programm kompilieren und ohne Argumente ausführen, erhalten wir folgende Ausgabe: | + | Wenn wir nun das Programm [[Compiler|kompilieren]] und ohne Argumente ausführen, erhalten wir folgende Ausgabe: |
− | + | Hello World! | |
− | Wenn wir nun beim Start | + | Wenn wir nun beim Start das obige Beispiel des Aufrufs mit zwei Argumenten verwenden und diese mit in die/das Kommandozeile/Eingabeaufforderung/Terminal eintippen, erhalten wir: |
− | + | Hallo Besucher, willkommen bei Byte-Welt! | |
− | [[Kategorie:Java]] | + | ==Programmcode mit Verarbeitung einer variablen Anzahl und Reihenfolge von Argumenten== |
+ | Wir können ein Java-Programm aber auch so schreiben, dass es eine variable Anzahl von Argumenten in einer beliebigen Reihenfolge entgegen nimmt. Eine solche Lösung wäre interessant, wenn man ein Programm mit verschiedenen optionalen Verhaltensweisen (Schalter) bauen und aufrufen möchte. | ||
+ | |||
+ | Der Programmierer bietet also verschiedene Optionen an, die der Anwender beim Ausführen des Programms durch Übergabe von Argumenten ein- oder ausschalten kann, um es entsprechend im Verhalten anzupassen. | ||
+ | |||
+ | {{In Arbeit}} | ||
+ | |||
+ | ==Beispiel 2 - Consolenrechner== | ||
+ | In einem zweiten Beispiel, werden wir einen einfachen Rechner für die [[4 Grundrechenarten auf der Kommandozeile]] programmieren. | ||
+ | |||
+ | ==Jar-Datei mit Argumenten starten== | ||
+ | Der allgemeine Befehl zum Starten einer [[JAR-Datei|Jar-Datei]] lautet: | ||
+ | java -jar MeinProgramm.jar | ||
+ | Analog dem Start einer Java-[[Klasse]] können auch hier Argumente beim Start übergeben werden, die das Programm anschließend verarbeiten kann: | ||
+ | java -jar MeinProgramm.jar -help | ||
+ | |||
+ | {{Fragen_stellen}} | ||
+ | |||
+ | |||
+ | [[Kategorie:Java Grundlagen]] |
Aktuelle Version vom 13. Juni 2020, 16:50 Uhr
Bereits beim Start eines Java-Programms kann man durch Übergabe von Argumenten Daten in das Programm einschleusen, die es verarbeiten kann.
Inhaltsverzeichnis
Start mit Argumenten
Ein Java-Programm wird durch Aufruf des Java-Interpreters gestartet, dem man den Klassennamen der Klasse übergibt, die die main()-Methode enthält. Beispielhaft daher hier noch mal ein Aufruf:
java HelloWorld
Die main()-Methode stellt für die Eingabe von Argumenten ein String
-Array bereit. Schauen wir uns noch einmal die Signatur der main()-Methode an:
public static void main(String[] args)
Sie ist public
, damit auf sie von überall auf sie zugegriffen werden kann. Sie ist static
, weil zum Zeitpukt des Programmstarts noch keine Objekte instanziiert wurden, auf denen Methoden aufgerufen werden könnten. Sie liefert nichts (void
) zurück.
Sie erwartet optional in ihrer Methodensignatur ein String-Array, welches oftmals args
benannt wird. Der Name des Arrays spielt keine Rolle. Genauso gut könnte er auch eingabe
lauten.
Im obigen Beispiel des Aufrufs des Java-Interpreters werden keine Argumente für die main()-Methode mitgegeben. Das wollen wir jetzt nachholen und schauen uns einen Aufruf mit Übergabe von Argumenten an:
java HelloWorld Byte-Welt Besucher
Direkt nach dem Klassennamen des zu startenden Programms werden also eins oder mehrere von einem Leerzeichen getrennte Argumente übergeben.
Programmcode mit Verarbeitung einer fixen Anzahl und Reihenfolge von Argumenten
Im vorigen Kapitel haben wir einen Aufruf eines Java-Programms mit Übergabe von Argumenten gesehen. Schauen wir uns den möglichen Code des Java-Programms mit Verarbeitung der Argumente dazu an.
public class HelloWorld { //unsere HelloWorld-Klasse
public static void main(String[] args) { //unsere main()-Methode
//Verarbeitung von Argumenten
if(args.length == 2) {
System.out.println("Hallo "+args[1]+", willkommen bei "+args[0]+"!");
}
else {
System.out.println("Hello World!");
}
}
}
Wenn wir nun das Programm kompilieren und ohne Argumente ausführen, erhalten wir folgende Ausgabe:
Hello World!
Wenn wir nun beim Start das obige Beispiel des Aufrufs mit zwei Argumenten verwenden und diese mit in die/das Kommandozeile/Eingabeaufforderung/Terminal eintippen, erhalten wir:
Hallo Besucher, willkommen bei Byte-Welt!
Programmcode mit Verarbeitung einer variablen Anzahl und Reihenfolge von Argumenten
Wir können ein Java-Programm aber auch so schreiben, dass es eine variable Anzahl von Argumenten in einer beliebigen Reihenfolge entgegen nimmt. Eine solche Lösung wäre interessant, wenn man ein Programm mit verschiedenen optionalen Verhaltensweisen (Schalter) bauen und aufrufen möchte.
Der Programmierer bietet also verschiedene Optionen an, die der Anwender beim Ausführen des Programms durch Übergabe von Argumenten ein- oder ausschalten kann, um es entsprechend im Verhalten anzupassen.
Dieser Beitrag wird derzeit noch bearbeitet. Der Text ist deshalb unvollständig und kann Fehler oder ungeprüfte Aussagen enthalten. |
Beispiel 2 - Consolenrechner
In einem zweiten Beispiel, werden wir einen einfachen Rechner für die 4 Grundrechenarten auf der Kommandozeile programmieren.
Jar-Datei mit Argumenten starten
Der allgemeine Befehl zum Starten einer Jar-Datei lautet:
java -jar MeinProgramm.jar
Analog dem Start einer Java-Klasse können auch hier Argumente beim Start übergeben werden, die das Programm anschließend verarbeiten kann:
java -jar MeinProgramm.jar -help
Fragen
Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!
- Besuche uns im Byte-Welt-Forum
- Besuche unseren Chat
Wir helfen dir gerne!
Dir hat dieser Artikel gefallen? Oder Du hast Fehler entdeckt und möchtest zur Berichtigung beitragen? Prima! Schreibe einen Kommentar!
Du musst angemeldet sein, um einen Kommentar abzugeben.