Skip to main content

So kannst du ein Java Programm starten und Argumente übergeben

Um ein Java Programm starten zu können, benötigst du immer die main-Methode.
Das Programm startet immer genau an dieser Stelle.

Alle lokalen Variablen, welche du in der Main Methode anlegst, kannst du dann im Programm nutzen.
Auch alle Methoden, welche du innerhalb des Methodenrumpfes der main-Methode aufrust, werden ausgeführt.

Was ist aber vor der main-Methode.
Ist es möglich dem Programm vor dem Start schon Argumente mitzugeben, welche die main-Methode verarbeiten kann?

Lass es uns herausfinden.

Werfen wir einen Blick auf die main-Methode

Die main-Methode besitzt, wie jede andere Methode einen Kopf und einen Rumpf.


public class ProgrammStartArgumente {
	
	public static void main(String[] args) {
		
	}

}

Und im Methodenkopf befindet sich eine Parameterliste.
Allen Methoden, welche einen Parameter erwarten, muss dieser Parameter beim Aufruf übergeben werden.

Wieso eigentlich nicht der main-Methode?
Oder stecken hier Argumente drin und wir sehen sie nicht.

Schauen wir uns die Parameterliste genauer an.
String[] args

Genau genommen, kannst du sagen…..
Es handelt sich um eine Parameterliste, welche ein String Array erwartet.

Und diese lokale Variable, welche dann den Verweis zum String-Array speichert, nennt sich „args“.
Nun weißt du auch schon, dass dieser Name vollkommen willkürlich sein kein.


public class ProgrammStartArgumente {
	
	
	/*
	 * Main Methode mit Variable "hinzUndKunz" in der Parameterliste 
	 */
	public static void main(String[] hinzUndKunz) {
		
	}

}

Du kannst diesen Parameter „argumente“, „vornamen“ oder auch „hinzUndKunz“ nennen.
Es spielt keine Rolle.

Die Variable, welche auf dieses String Array zeigt ist lokal.
Und weil diese lokal ist, kannst du außerhalb der Methode nicht auf diese zugreifen.

Java Programm starten args

Also was steckt drin?

Da die Variable „args“ oder wie immer du sie nennst, einen Verweis auf ein Array darstellt, kannst du es auch so behandeln.

Zuerst die Länge.
Lass uns die Anzahl der Elemente des Arrays herausfinden.

Jedes Array hat eine Länge.
Und diese Länge wird in der Variable „length“ gespeichert.

Das heißt du:

  1. Schreibst den Namen deiner Referenzvariablen „args“ oder wie immer du sie nennst.
  2. Setzt den Punkt und leitest die Punktnotation ein.
  3. Dann setzt du die Variable dahinter.

Und wenn du das Ganze in eine System.out.println()-Anweisung einbindest, dann bekommst du die Länge per Bildschirmausgabe.
Beachte, dass dies nur innerhalb der main-Methode funktioniert.
Args existiert außerhalb der Methode nicht.

Also dann..


public class ProgrammStartArgumente {

	public static void main(String[] args) {
		System.out.println(args.length); //Die Länge des Argumentes als Bildschirmausgabe
		
	}

}

Klicke auf „Run“.
Und welche Länge wird dir zurückgegeben.

Wie erwartet ist die Länge 0.
Klar – bis jetzt haben wir dem Programm noch keine Argumente übergeben.

Lass uns der main-Methode zum Programmstart Argumente übergeben.

Und so geht’s.
Beim Ausführen des Programmes klickst du immer auf „Run“.
Direkt neben dem Button befindet sich ein kleiner Pfeil.
Klick einmal auf diesen.

Java Programm starten Run Konfiguration

Und dann wähle „Run Configurations…“.
Java Programm starten Run Configurations

Es öffnet sich ein neues Fenster.
In diesem befinden sich links deine Klassen.
Java Programm starten Klassen im Projekt

Und rechts kannst du Optionen festlegen.
Klicke einmal auf den Reiter „Arguments“.
Java Programm starten Reiter Arguments

Hier kannst du die Programmstart-Argumente eingeben.
Java Programm starten Argumente eingeben

Nachdem du deine Argumente eingeben hast, klicke auf „Apply“.
Java Programm starten Argumente übernehmen

Dein Argument wurde jetzt übernommen.
Du kannst jetzt entweder dieses Fenster schließen.
Klicke dazu auf Close.
Java Programm starten Fenster schließen

Oder du schließt dieses Fenster und führst gleichzeitig das Programm aus.
Klicke dazu auf „Run“.

Wenn du jetzt das Programm startest, dann wird die Länge 1 zurückgeben.


public class ProgrammStartArgumente {

	public static void main(String[] args) {
		System.out.println(args.length); //Die Länge des Argumentes als Bildschirmausgabe
		
	}

}

Und du kannst dir den Inhalt des Faches anzeigen lassen, wie bei jedem anderen Array auch.


public class ProgrammStartArgumente {

	public static void main(String[] args) {
		System.out.println(args.length); //Die Länge des Argumentes als Bildschirmausgabe
		System.out.println(args[0]); //Inhalt des Arrays an der Stelle 0
	}
}

Zusammenfassung:

  • Die Parameterliste der main-Methode erwartet ein String-Array.
  • Diesem String Array kannst du zum Programmstart Argumente übergeben und somit das Array füllen.
  • Und dann kannst du dieses Array, wie jedes andere Array behandeln.

Ähnliche Beiträge

Nutze das Keyword this für deine Java Konstruktoren

Java konstruktoren this

Es ist gemein. Wahrscheinlich hast den Beitrag zu den lokalen Variablen gelesen. Vielleicht hast du auch den Artikeln zum Anlegen und Überladen von Java Konstruktoren gelesen. Und wenn du die beschriebene Inhalte selbst ausprobiert hast…… Dann hast du dir wahrscheinlich sehr viele lokale Variablennamen für die Parameterliste ausdenken müssen.

Der Aufbau von Java Klassen

Java Klassen Aufbau

Jedes Java Programm besteht aus Java Klassen. Doch wie sind diese aufgebaut? Wie setzt sich die Struktur zusammen? Wo befinden sich Klassen hierarchisch? Was kommt in die Klassen rein und wie wird es integriert? Das sind die Fragen, welche ich in diesem Artikel beantworten werde. Doch bevor wir bei den Klassen ansetzen, müssen wir eine […]

3 Möglichkeiten um Vererbung von Java Klassen zu verhindern, zu verbieten oder ausschließen

Java Vererbung verhindern

Die ganze Java Vererbung für bestimmte Klassen ausschließen bzw. verhindern oder verbieten. Was soll das? Für bestimmte Java Klassen soll die Vererbung ausgeschlossen werden. Es soll also verhindert werden, dass Elternklassen – Kindklassen bekommen können. Klingt ein bisschen wie Verhütung, oder? Denn wie auch im echten Leben, können Kinder zu kleinen Tyrannen werden. Sie bedienen […]

Das Java Vererbung Konzept in einem Rollenspiel

Java ist eine objektorientierte Programmiersprache. Und das bedeutet nicht nur, dass du Objekte einer Java Klasse erzeugen kannst. Es bedeutet auch, dass Java Klassen von anderen Klassen erben können. Wieso das Ganze? Stell dir einmal ein Rollenspiel vor. Wie würdest du ein Rollenspiel entwerfen? In einem Rollenspiel gibt es magische Gegenstände. Zauberringe, Zauberstäbe, welche bei […]

Verwalte deine Java Klassen in packages

java klassen verwalten

Es macht durchaus Sinn deine Java Klassen in verschiedenen Paketen zu organisieren. Wieso? Es sprechen mehrere Gründe dafür: Du kannst doppelte Klassennamen verwenden Du kannst deinen Code oder deine Klassen inhaltlich trennen Du kannst Hierarchien abbilden. Und genau um diese Dinge geht es in diesem Beitrag

So kannst du Java Methoden überladen

Java Methoden überladen

Im Mittelalter war es üblich, dass Könige oder Adlige Briefe durch ein Siegel verschlossen. Das Siegel hatte die Aufgabe den Inhalt des Briefes vor dem gewaltsamen Öffnen zu schützen. Außerdem hatte das Siegel die Aufgabe einen Eigentumsnachweis sicher zu stellen. Und jeder, welcher das Siegel des Königs sah, wusste: „Das königliche Siegel – Oh ein […]

Heap & Stack – Die Speicherverwaltung in Java

Java Speicher

Java nutzt eine interne Speicherverwaltung. Eigentlich sind es mehrere. Uns interessieren lediglich zwei. Da das Thema Speicherverwaltung recht umfangreich ist, habe ich dir im Folgenden einmal die wichtigsten Artikel zusammengestellt. Die zwei Speichersysteme von Java Java Methoden werden auf dem Stack gestapelt. Der Speicher auf dem Java Methoden zu Hause sind, nennt sich Stack Speicher. […]

Java Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

So kannst du Java Arrays anlegen

Java Arrays anlegen

Java Arrays– Was ist das? Stell es dir einmal als ein Bücherregal vor. In einem Bücherregal befinden sich sämtliche Bücher. Und diese befinden sich schön nebeneinander. Jedes Buch hat seinen festen Platz. Du kannst die Bücher ganz genau lokalisieren. Zum Beispiel kannst du sagen. Das erste Buch von links Das dritte von rechts usw. Und […]