Process pro =Runtime.getRuntime.exec("wine /Datei Pfad/

Status
Nicht offen für weitere Antworten.

ToKaM OnE

Aktives Mitglied
Hallo, ich habe ein Problem beim Starten einer exe über wine mit java, wie im Titel erkennbar.

Das Problem lieg meiner Vermutung nach im Dateipfad, sofern dieser leertasten enthält.

Angenommen ich für folgendes aus:

Code:
try {
	Process proc = Runtime.getRuntime().exec("/usr/bin/wine/home/tokam/.wine/drive_c/Program World of Warcraft/wow/Launcher.exe");
	BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
	BufferedReader err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
	String ausgabe="";
	while((ausgabe=in.readLine())!=null){
		System.out.println(ausgabe+"a");
	}
so erhalte ich folgende ausgabe:
wine: cannot find '/home/tokam/.wine/drive_c/Program\'

Ich habe es auch schon mit "\\ " oder "\u0020" oder "\\\u0020" anstelle der leerzeichen " " versucht.
Alles fürte zum gleichen Ergebniss.

Bei recherche im source der klasse Runtime habe ich festgestellt, dass diese mit einem StringTokenizer arbeitet und an die Klasse Processbuilder übergibgt.

Könnte die Ursache für mein Problem im StringTokenizer liegen?
Wie kann ich leertasten im Dateipfad beim ausfüren eines externen Prozesses realisieren? (nur mit einem Wrapper script.sh ? Mit der Klasse ProcessBuilder ?? )

Mit besten Grüßen ToKaM

PS: nein, ich bin nicht wow süchtig, auch wenn ich wie oben erkennbar etwas dafür schreibe :D lol
 

ToKaM OnE

Aktives Mitglied
"\ " ist eine ungültige escape sequenz soweit ich weis ?!? und "\\ " hab ich schon probiert, vergebens.
 

ToKaM OnE

Aktives Mitglied
mit %20 hab ich es jezt mal getestet:
folgendes ergebniss :D

wine: cannot find '/home/tokam/.wine/drive_c/Program%20Files/World%20of%20Warcraft/wow/Launcher.exe'

wie meinst du das mit dem asci was soll ich eintragen?
 

ToKaM OnE

Aktives Mitglied
Ok, ich hab jezt mal Kim Stebel (den, mit der ersten Antwort) angeschrieben, und um Rat gefragt.
Er hatte das gleiche Problem auch, jedoch hat er es hinbekommen, in dem er das ganze in einem String[] übergeben hat.

Code:
Process proc =Runtime.getRuntime().exec(new String[]{"wine", "/home/tokam/.wine/drive_c/Program Files/World of Warcraft/wow/Launcher.exe"});

Ich werde mir jezt gleich mal den code von Runtime anschauen, ich vermute, dass bei der übergabe in einem Array der StringTokenizer nicht zum einsatz kommt, da dieser bei exec(String s) u.a. verwendet wurde um den tring mit seinen tokens in ein String[] zu packen. Dabei wurde der pfad natrürlich bei jedem leerzeichen unterteilt.

Optimal wäre es wenn ich es hinbekäme, dass mein Programm nach dem start des anderen Terminiert.
Ich probier das jezt mal hinzubekommen mit Threads usw ....


THX ToKaM
 

ToKaM OnE

Aktives Mitglied
So, vielen Dank nochmal. Ich starte meine Aplikation in einem eigenen Thread und lasse mein Programm terminieren, geht alles wunderbar, unter Linux ....

was muss ich beachten wenn ich das ganze auf windows laufen lasse?

Guido Krüger macht immer ein prefix davor in kapitel 16.4 listing 16.9 wieso?

wieso geht das so bei mir nicht?!?


Code:
Process proc =Runtime.getRuntime().exec(new String[]{"comannd.com", " /"+fileChooser.getSelectedFile().getAbsolutePath()});


Das ist jezt nur eine von den zahlreichen Syntaxvariationen, die ich schon probiert habe....

Wie ist es richtig?
Code:
fileChooser.getSelectedFile().getAbsolutePath()
liefert den pfad zu einer exe Datei ...

hoffe ihr könnt mir weiterhelfen, tokam
 

ToKaM OnE

Aktives Mitglied
*push thread* ... !?!

Wie starte ich eine exe über java auf einem windowsbetriebssystem?
Unter Linux klappt es schon wunderbar.
Was muss ich der methode exec übergeben, aus welchem inhalt besteht der übergebene String?

EDIT:

@ Murry: Thx, funktioniert, hatte das sogar eigentl. schon so bevor ich den Thread gepushed hab, mein fehler lag an 2 // in einer anderen zeile :D LOL


Danke Funktioniert alles.
 

Murray

Top Contributor
Wenn die ausgewählte Datei direkt die Exe ist:

Code:
Process proc =Runtime.getRuntime().exec(new String[]{fileChooser.getSelectedFile().getAbsolutePath()});
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M KeyEvents in Process Java Basics - Anfänger-Themen 3
P Compiler-Fehler Cannot make a static reference to the non-static field process Java Basics - Anfänger-Themen 3
B "Zufällige" Newlines in Process.getErrorStream Java Basics - Anfänger-Themen 5
K Process Java Basics - Anfänger-Themen 3
B Process.getInputStream immer leer Java Basics - Anfänger-Themen 3
S process - getInputStream und getErrorStream zusammen legen Java Basics - Anfänger-Themen 10
M to pdf print process starten Java Basics - Anfänger-Themen 4
A Problem mit destroy() aus der Klasse Process Java Basics - Anfänger-Themen 5
D Thread und Process Kommunikation bei eigener Console Java Basics - Anfänger-Themen 2
M parent process in die Hand bekommen Java Basics - Anfänger-Themen 2
S Process ID Java Basics - Anfänger-Themen 2
G process ausgabe in Systemkonsole anzeigen Java Basics - Anfänger-Themen 10
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
O Methoden Runtime.getRuntime().exec(befehl); Java Basics - Anfänger-Themen 6
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
I Runtime.getRuntime mit delay? Java Basics - Anfänger-Themen 2
B getRuntime().exec() Java Basics - Anfänger-Themen 4
P Vererbung Runtime.getRuntime().exec("blub"); Java Basics - Anfänger-Themen 11
M Grep über .getRuntime Java Basics - Anfänger-Themen 12
J Window 7 Problem mit Runtime.getRuntime().exec("explorer") Java Basics - Anfänger-Themen 4
S .exe mit getRuntime.exec sichtbar ausführen Java Basics - Anfänger-Themen 3
D Runtime.getRuntime().exec(command); Java Basics - Anfänger-Themen 5
X Runtime.getRuntime().exec() Problem(inkonsistenter sch****) Java Basics - Anfänger-Themen 2
G Runtime.getRuntime().exec(command) für Mac OS! Java Basics - Anfänger-Themen 7
G Runtime.getRuntime().exec und Exception? Java Basics - Anfänger-Themen 3
L Bitte um Hilfe: getRuntime().exec() Java Basics - Anfänger-Themen 12
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
O Aktuelles Verzeichnis Runtime.getRuntime().exec Java Basics - Anfänger-Themen 6
S mit getRuntime.exec gestarteten Prozess überwachen Java Basics - Anfänger-Themen 2
T Runtime.getRuntime().exec mit parameterübergabe Java Basics - Anfänger-Themen 16
padde479 Runtime.getRuntime.exec() Leerzeichen unterdrücken Java Basics - Anfänger-Themen 2
G getRuntime().exec unix problem Java Basics - Anfänger-Themen 17
B mit Runtime.getRuntime().exec auch HTML-Dateien öffnen? Java Basics - Anfänger-Themen 7
G Parameterübergabe bei Runtime.getRuntime().exec Java Basics - Anfänger-Themen 16
F Probleme mit Runtime.getRunTime().exec() Java Basics - Anfänger-Themen 7
N Und noch eine Frage über getRuntime() Java Basics - Anfänger-Themen 4
Z Frage nach getRunTime() Java Basics - Anfänger-Themen 2
M Runtime.getRuntime().exec() Problem Java Basics - Anfänger-Themen 3
C Kann java.exe nicht aus Runtime.getRuntime().exec() starten Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben