Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben

learningbydoing

Aktives Mitglied
Hallo zusammen😃,

habe mal wieder eine Frage.

Ich möchte bei meinem Programm, mehrere Parameter bei dem Start über die Kommandozeile übergeben. Das Programm soll mit einem gegebenen Pfad und den gegebenen Dateiendungen, das Verzeichnis nach diesen durchsuchen und anschließend, wenn alle Dateiendungen vorhanden sind, eine Datei hinzufügen. Diesen Punkt habe ich soweit schon hinbekommen. Leider, komme ich nicht weiter, wie man die Parameter richtig übergibt. Soweit ich weiß, braucht man da doch eine Art Parser oder nicht🤔?
Das Ausführen des Programms sollte dann ungefähr so aussehen:
java Programm.jar "ein beliebiger Pfad" "mehrere Dateiendungen" -> z.B. java Programm.jar C:\User\Downloads\NeuerOrdner .zip .txt .pptx .docx

Vielen Dank schon einmal im Voraus für Eure Hilfe!😄
 

httpdigest

Top Contributor
Wenn du folgendes aufrufst:
Code:
java -jar programm.jar C:\User\Downloads\NeuerOrdner .zip .txt .pptx .docx
dann wird der String-Array Parameter deiner main()-Methode fünf Elemente enthalten.
Du brauchst hier also nichts selbst zu parsen.
Also:
Java:
public class DeineStartKlasse {
  public static void main(String[] args) {
    // -> args hat Länge 5
  }
}
 

learningbydoing

Aktives Mitglied
Ah ok verstehe. Kann ich das aber auch spezifizieren? Also das der User zum Beispiel:

java -jar programm.jar -Dpath="C:\User\Downloads\NeuerOrdner" -Dendings=".zip", ".txt", ".pptx", ".docx"

oder

java -jar programm.jar -Dpath="C:\User\Downloads\NeuerOrdner" .zip .txt .pptx .docx

eingeben muss?
 

httpdigest

Top Contributor
Ja, du kannst auch die Java System Properties hierfür verwenden, aber dann so:
Code:
java -Dpath="C:\User\Downloads\NeuerOrdner" -jar programm.jar .zip .txt .pptx .docx
also immer _vor_ dem "-jar" Parameter.
Ansonsten musst du einen Commandline Parser für Java verwenden. Z.B. Apache Commons CLI.
 

learningbydoing

Aktives Mitglied
Ich würde es dann nach dieser Art machen (also System Properties):

java -jar programm.jar -Dpath="C:\User\Downloads\NeuerOrdner" -Dendings=".zip", ".txt", ".pptx", ".docx"

😃👍
 

httpdigest

Top Contributor
java -jar programm.jar -Dpath="C:\User\Downloads\NeuerOrdner" -Dendings=".zip", ".txt", ".pptx", ".docx"
Falsch. Das wäre wieder ein Program Argument (in dem String[] args Array der main-Methode).
Wie ich bereits weiter oben sagte: System Properties müssen _vor_ dem "-jar" angegeben werden!

Richtig wäre:
Code:
java -Dpath="C:\User\Downloads\NeuerOrdner" -Dendings=".zip", ".txt", ".pptx", ".docx" -jar programm.jar

Und mit diesen Anführungszeichen wird es auch nicht funktionieren. Du könntest eher:
Code:
java -Dpath="C:\User\Downloads\NeuerOrdner" -Dendings=".zip, .txt, .pptx, .docx" -jar programm.jar
verwenden, musst es dann aber auch selber an den Kommas splitten.
 

Neumi5694

Top Contributor
Was du da machen willst, sollte über Argumente gemacht werden und nicht über die Systemproperties, die sind dafür nicht der richtige Weg. Klar kann man es so machen, aber spätestens wenn du mal einen Launcher in Form einer .exe verwendest, kriegst du damit ein Problem.
Java:
java -jar programm.jar -path="C:\User\Downloads\NeuerOrdner" -endings=".zip .txt .pptx .docx"
    
//In Main wird ein Array mit 2 Werten ankommen, einmal:
"-path=C:\User\Downloads\NeuerOrdner"
//und
"-endings=.zip .txt .pptx .docx"
Jetzt musst du die Argumente halt noch parsen, ist in dem Fall nicht weiter schwer.

Wenn du die Anführungszeichen bei endings nicht verwendest, werden noch mehr Array-Elemente geliefert, da an Leerzeichen außerhalb von Anführungszeichen gesplittet wird.
Auch das ist einfach zu parsen/interpretieren

Möglich wäre also auch ein solcher Aufruf:
Java:
java -jar programm.jar -path "C:\User\Downloads\NeuerOrdner" -endings .zip .txt .pptx .docx
Dein Interpreter würde hinter "-path" einen Dateipfad erwarten. Kommt was anderes, dann muss ein Fehler ausgegeben werden. Nach -endings würde eine unbestimmte Anzahl an Dateierweiterungen erwartet werden.
 
Zuletzt bearbeitet:

temi

Top Contributor
Java:
java -jar programm.jar -path="C:\User\Downloads\NeuerOrdner" -endings=".zip .txt .pptx .docx"
  
//In Main wird ein Array mit 2 Werten ankommen, einmal:
"-path=C:\User\Downloads\NeuerOrdner"
//und
"-endings=.zip .txt .pptx .docx"

In diesem Fall könntest du auf die einzelnen Elemente von "args" mit String.split() am Gleichheitszeichen splitten. Das erste Element des Strings ist dann der Schlüssel (z. B. "-path") und das zweite Element der zugehörige Wert. Es ist dann noch deine Aufgabe gültige Schlüssel und gültige Werte zu prüfen und entsprechend zu behandeln.

Beim Schlüssel "-endings" können ja mehrere Werte enthalten sein, die dann wieder am Leerzeichen gesplittet werden können, um die einzelnen Werte zu erhalten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
M OOP Probleme beim Funktionsaufruf, Java OpenCV Java Basics - Anfänger-Themen 0
A Hat jemand einen ratschlag, wie java beim replaceALL eine geschweifte klammer erkennt ? Java Basics - Anfänger-Themen 5
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
J Eingabeaufforderung stürzt ab (beim Ausführen einer Java-Datei) Java Basics - Anfänger-Themen 3
D Java - OutOfMemoryError beim Parsen Java Basics - Anfänger-Themen 15
F Unicode beim Lesen und Schreiben per java.io.* Java Basics - Anfänger-Themen 9
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
S Kennt jemand die Default-Cache Zeit beim Java-Plugin? Java Basics - Anfänger-Themen 2
E java.lang.OutOfMemoryError beim Rotieren eines Images Java Basics - Anfänger-Themen 14
C Fehler beim ausgführen von Java App als nicht Admin u. Vista Java Basics - Anfänger-Themen 6
I Probleme beim Einrichten von Java (PATH-Veriable) Java Basics - Anfänger-Themen 4
G Java beim Start ausführen Java Basics - Anfänger-Themen 2
0 Folgender Fehler beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 8
B Großer Java bug beim rechnen? Java Basics - Anfänger-Themen 66
S Problem beim kompilieren mit Java 1.4 Java Basics - Anfänger-Themen 4
S Probleme beim Java Kompilieren + ausführen Java Basics - Anfänger-Themen 6
N Problem beim Start von java-progs Java Basics - Anfänger-Themen 4
G Verständnisfrage beim Java Programm Java Basics - Anfänger-Themen 7
I Hilfe beim Java-Applet Beispiel Java Basics - Anfänger-Themen 27
I java - probleme beim complimieren Java Basics - Anfänger-Themen 4
C Problem beim installieren des Java SDK Java Basics - Anfänger-Themen 5
B Java - Anzeige beim Refresh weiss Java Basics - Anfänger-Themen 11
B Problem beim Ausführen eines Java Datenbank Programms Java Basics - Anfänger-Themen 6
G Fehlermledung beim starten eines Java Archivs. Java Basics - Anfänger-Themen 12
D Fehler beim kompilieren einer Java-Datei (javac) Java Basics - Anfänger-Themen 6
G java.lang.NullPointerException beim objekt Java Basics - Anfänger-Themen 3
K noob-problem beim beginnen mit java Java Basics - Anfänger-Themen 27
L Kompletter Neuling: Hilfe beim ersten Java Versuchen Java Basics - Anfänger-Themen 12
A Hilfe beim Java-Einstieg Java Basics - Anfänger-Themen 3
K Neuronales Netz in Java und Probleme beim Konfigurieren Java Basics - Anfänger-Themen 2
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
T DamagedFontException beim drucken Java Basics - Anfänger-Themen 3
Z SNAKE Schlange beim Aufheben von Essen verlängern Java Basics - Anfänger-Themen 4
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
S Fehler beim Programm Java Basics - Anfänger-Themen 2
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
Avalon Programmierstil beim Mocken Java Basics - Anfänger-Themen 45
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
Kirby.exe Fehler beim Ausgeben Java Basics - Anfänger-Themen 2
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
V Wie wiederhole ich eine for-Schleife beim erreichen eines Wertes Java Basics - Anfänger-Themen 9
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben