Parameter an Java-Programme übergeben

Status
Nicht offen für weitere Antworten.

vensch

Mitglied
Hallo Leute,
ich habe mal eine Frage, und zwar belege ich dieses Semester einen Programmierkurs in Java und komme bei der einen Aufgabe nicht weiter. Blutige Anfängerin...:oops:

Folgenden Code hab ich:

[highlight=Java]public class Stars {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("*");
System.out.println("***");
System.out.println("*****");
System.out.println("*******");
}

}[/highlight]

Nun soll ich dem Programm beim Start zwei Parameter übergeben und den Code hinzufügen, der beide Parameter auf die Konsole durch Komma getrennt ausgibt.
Ich blick da grad einfach nicht durch... ???:L
Danke schon mal für die Hilfe.
 

SvenK

Aktives Mitglied
Programm-Parameter werden in dem Array args übergeben.

Wenn du sicherstellen kannst, dass 2 Parameter übergeben werde, ist die Ausgabe ziemlich einfach (der Index in Arrays fängt immer bei 0 an)
[highlight=Java]System.out.println(args[0] + ", " + args[1])[/highlight]

Um sicher zu gehen, dass es keine ArrayIndexOutOfBounds-Exception gibt (will heisen, es wird versucht auf einen Index zuzugreifen, den es nicht gibt) und um auch eine variable Anzahl von Parametern abzudecken, kannst du folgendes versuchen
[highlight=Java]
String ausgabe;
for (int i = 0; i < args.length; i++) {
ausgabe = args;
if (i < args.length) {
ausgabe = ausgabe + ", ";
}
System.out.println(ausgabe);
}
[/highlight]
 
Zuletzt bearbeitet:

Hutmacher

Bekanntes Mitglied
Soetwas Ähnliches hatte ich auch in meinen Thread vor, nur mit einem Parameter.

Diese Start-Methode, public static void main(String[] args) hat ja, wie man unschwer erkennen kann, einen Parameter. Dieses String-Array verwaltet die übergebenen Parameter. Das heißt, der erste Parameter, den Du dem Programm übergibst, ist in args[0], der zweite in args[1] und so weiter.

[HIGHLIGHT="Java"]public class Stars
{
public static void main(String[] args)
{
String parameter1 = args[0];
String parameter2 = args[1];
}
}[/HIGHLIGHT]

(Exceptions habe ich jetzt extra nicht berücksichtigt, da ist SvenKs Version definitiv besser)
Nun hast du die Parameter, diese kannst du jetzt überall verwenden, z.B. für die Konsole.

Aber wie übergebe ich denn dem Programm jetzt die Parameter?
Wenn du Eclipse hast, lass dir mal über File ► Export
eine Jar-File erstellen.

Diese kannst Du jetzt über cmd aufrufen und ihr Parameter übergeben.
(wir gehen davon aus, dass die File auf dem Desktop liegt)
Wir geben also ein:
Code:
cd Desktop
↑Hierdurch wechseln wir zur Desktop-Ebene
Code:
java -jar NameDesProgramms.jar parameter1 parameter 2
Bsp:
Code:
java -jar ParameterTestProgramm.jar hallo 50

[Ist jetzt mal ungestestet]
 
Zuletzt bearbeitet:

vensch

Mitglied
Programm-Parameter werden in dem Array args übergeben.

Wenn du sicherstellen kannst, dass 2 Parameter übergeben werde, ist die Ausgabe ziemlich einfach (der Index in Arrays fängt immer bei 0 an)
[highlight=Java]System.out.println(args[0] + ", " + args[1])[/highlight]

Um sicher zu gehen, dass es keine ArrayIndexOutOfBounds-Exception gibt (will heisen, es wird versucht auf einen Index zuzugreifen, den es nicht gibt) und um auch eine variable Anzahl von Parametern abzudecken, kannst du folgendes versuchen
[highlight=Java]
String ausgabe;
for (int i = 0; i < args.length; i++) {
ausgabe = args;
if (i < args.length) {
ausgabe = ausgabe + ", ";
}
System.out.println(ausgabe);
}
[/highlight]


Hmmm...mir wird tatsächlich ein ArrayIndexOutOfBounds-Exception angezeigt:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Stars.main(Stars.java:14)


Wenn ich allerdings die zweite Variante versuche, bekomme ich gar keine Ausgabe bzw. nur die, die ich ganz am Anfang schon hatte - die Zeilen mit den Sternchen. Woran mag das liegen?
 

Marco13

Top Contributor
Dann übergibst du wohl keine Parameter...
Code:
if (args.length < 2)
{
    System.out.println("Eeeeyh, zwo Parameter angeben, aber flott!!");
    return;
}
 

SvenK

Aktives Mitglied
Wenn ich allerdings die zweite Variante versuche, bekomme ich gar keine Ausgabe bzw. nur die, die ich ganz am Anfang schon hatte - die Zeilen mit den Sternchen. Woran mag das liegen?
Vergessen die Parameter mit anzugeben?

In deinem Fall würdest du in der Kommandozeile folgendes eingeben
Code:
java Stars Parameter1 Parameter2
Du kannst soviel Parameter angeben wie du willst, immer durch Leerzeichen voneindander getrennt.
 

vensch

Mitglied
Okay, so langsam bin ich hier am Verzweifeln... :(
Hab am Code rumgewerkelt, versteh aber immer noch nicht so ganz, was genau ich eingeben muss, um ein ArrayIndexOutOfBounds-Exception zu verhindern...
Mein Code lautet im Moment

[highlight=Java]public static void main(String[] args)
{
//
System.out.println("*");
System.out.println("***");
System.out.println("*****");
System.out.println("*******");
{ System.out.println("1. Parameter: " + args[0]);
System.out.println("2. Parameter: " + args[1]);
}
} [/highlight]

Was mach ich falsch?
 

SvenK

Aktives Mitglied
codemäßig machst du nichts falsch (bis auf die {-Klammern vor und nach dem hinzugefügten System.out, die kannst du dir sparen)

Aber du bekommst bei deinem Code die ArrayIndex...., wenn du gar keine Parameter an das Programm übergibst bzw nur 1 Parameter.

Also noch einmal:
startest du das Programm über die Kommandozeile, gibst du ein
Code:
java Stars Parameter1 Parameter2
Startest du das Programm über Eclipse, gehst du im Menü "Run" -> "Run Configurations" im folgendes Dialog zu dem Eintrag "Stars" unter "Java Applications", wechselst in den Aktenreiter "Arguments" und gibst unter "Program Arguments" deine 2 Parameter an. Dann auf Run klicken und schon läuft es. Bei Netbeans und anderem müsste dir jemand anderes sagen, wie man das einstellt

WICHTIG!! bei deinem Code mindestens 2 Parameter angeben
 

vensch

Mitglied
Aaaaaaahhhh, jetzt verstehe ich. Ich arbeite das erste mal mit Eclipse, deswegen war ich etwas verwirrt. Nun funktioniert es - ich danke dir! :toll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
H archive vergleichbarer Paramter unter Tag Object mit Parameter codetype="application/java-vm" Java Basics - Anfänger-Themen 3
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
J Java & parameter /Claspath Java Basics - Anfänger-Themen 2
D Einem Java Programm Parameter/Werte übergeben Java Basics - Anfänger-Themen 2
J Welche Parameter bei java um Klasse aus Package zu starten? Java Basics - Anfänger-Themen 9
D JAVA.EXE veraendert Parameter Java Basics - Anfänger-Themen 4
C Interface Parameter und Rückgabewerte in Lambda Ausdrücken verwenden Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
BeginnerJava "Weihnachtsbäume" anzeigen: Höhe als Parameter Java Basics - Anfänger-Themen 1
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
X Default Parameter Java Basics - Anfänger-Themen 20
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
I JAX-RS Mehrere Parameter in Query Java Basics - Anfänger-Themen 3
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
P Parameter auf Datenformat überprüfen Java Basics - Anfänger-Themen 5
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
W Parameter solange addieren bis 13 auftaucht Java Basics - Anfänger-Themen 11
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
V Unbekannte Parameter Java Basics - Anfänger-Themen 1
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
A festgelegte Parameter Java Basics - Anfänger-Themen 11
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
D Interface Final für Parameter in überschriebenen Methoden? Java Basics - Anfänger-Themen 3
P Variablen Optionaler Parameter auf der Kommandozeile Java Basics - Anfänger-Themen 12
S Variable Parameter Java Basics - Anfänger-Themen 5
L Variablen Parameter bekommen Java Basics - Anfänger-Themen 13
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
B Webservice -> alle parameter bekommen von form Java Basics - Anfänger-Themen 2
K Klassenmethode mit übergebenen Parameter speichern Java Basics - Anfänger-Themen 7
I BigDecimal als Parameter verwenden Java Basics - Anfänger-Themen 3
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Parameter das übergeben wurde ändern? Java Basics - Anfänger-Themen 1
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
K Dynamischen Supplier für Parameter Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
M Methode mit Parameter Java Basics - Anfänger-Themen 4
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
A Erste Schritte Methoden mit Parameter Java Basics - Anfänger-Themen 2
D Statische Objekte mit variablem Parameter Java Basics - Anfänger-Themen 1
N Klassen Klassen zwingende Parameter mitteilen Java Basics - Anfänger-Themen 4
L Methoden Methode Parameter vertauschen? Java Basics - Anfänger-Themen 3
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
A Methoden Parameter optionalisieren möglich? - Wie? Java Basics - Anfänger-Themen 19
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
F Methoden: Referenzvariable als Parameter Java Basics - Anfänger-Themen 4
J HttpGet Parameter mitgeben Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
T Klasse von erfahren wenn Obertyp Parameter ist Java Basics - Anfänger-Themen 6
J Klassen Fehler mit Parameter des Konstruktors bei einer Objekterzeugung Java Basics - Anfänger-Themen 5
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
M Klasse als Parameter übergeben Java Basics - Anfänger-Themen 7
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
T unterschiedlich viele parameter übergeben Java Basics - Anfänger-Themen 5
V Methoden key value Parameter Java Basics - Anfänger-Themen 11
J Drucker parameter ändern Java Basics - Anfänger-Themen 9
F trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 0
O Basisklassen als Methoden-Parameter ähnlich, wie in C++ ? Java Basics - Anfänger-Themen 6
D GregorianCalendar als Parameter Java Basics - Anfänger-Themen 2
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben