exec der cmd mit parametern

iNstinct

Mitglied
Hi Leute,

Ich brauch Hilfe bei einem kleinerem Problem. Ich will über mein Java Programm die cmd.exe aufrufen. Das ist aber leider nicht alles.
In der cmd soll dann auf einen anderen Ordner verwiesen und in diesem eine exe mit Parametern aufgerufen werden.

Momentan sieht mein Quelltext wie folgt aus:

Code:
public void execute() throws Exception{
     Runtime rt = Runtime.getRuntime();
     rt.exec("cmd.exe "+properties.getProperty("XXX")+"XXX.exe -x XXX -y "+YYY);
}

So wird die exe aber nicht aufgerufen.

Ich hoffe mal, dass mir einer von euch helfen kann.
Vielen Dank schonmal im Vorraus :)
 
Moin!
Mal ein Beispiel um Wordpad mit einer textDatei aus der konsole aufzurufen:
Code:
Runtime.getRuntime().exec( "cmd /c start /B c:/windows/system32/write.exe c:/tables.txt" );
Musst jetzt eigentlich nur noch deinen Bedürfnissen ein wenig anpassen...
*grüssle*
MeinerEiner
 
Hallo,

auf den ersten Blick sieht Dein Aufruf eigentlich richtig aus.
Kann es sein, das der Pfad zur .exe Leerzeichen enthält?
Grundsätzlich würde ich es so machen um das Problem mit den Leerzeichen im Pfad zu umgehen:
Code:
public void execute() throws Exception{
     Runtime rt = Runtime.getRuntime();
     rt.exec("cmd \""+properties.getProperty("XXX")+"XXX.exe\" -x XXX -y "+YYY);
}

gruß klaus.

[EDIT]Vielleicht fehlt auch in Deinem Pfad ein / vor der XXX.exe?
 
Warum so umständlich?

Einfach ein String[] mit den verschiedenen Argumenten übergeben. Dadurch wird auch gesorgt, dass man sich um Leerzeichen und andere Zeichen nicht kümmern muss. Bei dem neueren Processbuilder geht das glaube ich nur mit String[].
 
Alle Änderungen konnten nicht ausgeführt werden. Auch wenn ich die exe mit Parametern (ohne cmd davor) aufrufe passiert nicht.

Der Pfad in der properties endet mit / also dürfte da auch kein problem entstehen.
:/

//EDIT:

Auch die String[] Methode geht nicht.

Code:
String[] para = {properties.getProperty("XXX)+"\\XXX.exe","-x","XXX","-y",YYY};
rt.exec(para);
 
Zuletzt bearbeitet:
Alle Änderungen konnten nicht ausgeführt werden. Auch wenn ich die exe mit Parametern (ohne cmd davor) aufrufe passiert nicht.

Der Pfad in der properties endet mit / also dürfte da auch kein problem entstehen.
:/

//EDIT:

Auch die String[] Methode geht nicht.

Code:
String[] para = {properties.getProperty("XXX)+"\\XXX.exe","-x","XXX","-y",YYY};
rt.exec(para);

Du solltest auch cmd.exe mitgeben...woher soll er sonst wissen was er aufrufen soll?
Wenn der Pfad mit einem / endet...entschuldigung aber unter Windows verwenden wir \ also \\

Java:
String[] para = {"cmd.exe",properties.getProperty("XXX)+"\\XXX.exe","-x","XXX","-y",YYY};
rt.exec(para);
 
Die / werden zwar automatisch zu \ aber egal.

Das kam beim Stringarray raus:
cmd.exeD:\**\**\**\XXX.exe-xXXX-yY

Sollten da nich Leerzeichen rein?

Selbst mit Leerzeichen funktioniert dieser Aufruf nicht!
 
Zuletzt bearbeitet:
Hallo,

normal sollte es funktionieren, wenn du statt "cmd.exe" nur "cmd" angibst, dann brauchst du auch keinen Pfad mit anzugeben.
Wo sollten Leerzeichen sein?

MFG

zEriX
 
Hallo,

ja auf jeden Fall müssen da Leerzeichen rein.
Die wirst Du aber wohl per Hand dann einfügen müssen.
Also:
Code:
String[] para = {"cmd ",properties.getProperty("XXX)+"\\XXX.exe ","-x ","XXX ","-y ",YYY};rt.exec(para);

gruß klaus.
 
Zurück