2017-04-08 2 views
0

Ich habe mit dem Ausführen einiger EXE-Dateien rumgespielt und es scheint, als ob etwas daran hindert, es in appdata auszuführen?Runtime Exec kann keine Programme in appdata ausführen?

Runtime.getRuntime().exec(System.getenv("APPDATA") + "test.exe"); 

Dies ist der Fehler, den ich

bekommen
java.io.IOException: Cannot run program "C:\Users\Cole": CreateProcess error=2, The system cannot find the file specified 
+0

Sie entkommen keine Leerzeichen. – Siguza

+0

Es gibt BTW 3 verwandte Fragen, die ein bisschen mehr auf die Antwort erweitern. – eckes

Antwort

1

Sie sollten nicht auf die Ebene exec (String) -Methode verwenden, da es betriebssystemspezifische Entkommen erfordert. Wenn Sie die string array version verwenden, sollte es die ausführbare Datei finden.

Es ist auch eine gute Idee zu überprüfen, ob die Variable existiert und wenn sie mit einem \ endet, bevor sie mit dem Dateinamen verkettet wird. Oder verwenden Sie besser den hierarchischen Dateikonstruktor:

+0

Könnten Sie bitte ein Beispiel dafür geben? –

0

Ein einfacher Weg, dies zu tun ist, den Pfad mit einem Dateiobjekt zu konstruieren.

final String f = new File(System.getenv("APPDATA"), "test.exe").toString(); 
final Process p = Runtime.getRuntime().exec(new String[] { f }); 
Verwandte Themen