ProcessBuilder

Status
Nicht offen für weitere Antworten.

Aeron

Mitglied
Hallo,
ich habe in einem Pydev-Projekt ein Python Script liegen, das ich gerne vom Java-Projekt aus ausrufen würde. Habe probiert mit relativen Pfadangaben zu arbeiten, aber das will nicht so richtig klappen. Würde anschleißend mit JEditorPane gerne eine Datei öffnen die ebenfalls im Pydev-Projekt liegt. Da habe ich dasselbe Problem.

Kann mir jemand einen Tipp geben? Danke schonmal 🙂
 
Naja er wirft mir eine Exception aus:
Code:
java.io.IOException: Cannot run program "python ../Highscore/src/highscore.py": CreateProcess error=2, Das System kann die angegebene Datei nicht finden

Habe es versucht wie folgt aufzurufen
Java:
ProcessBuilder pb = new ProcessBuilder("python ../Highscore/src/highscore.py")
        	  try {
				Process p = pb.start();
			} catch (IOException e) {
				e.printStackTrace();
			}

Dabei heißt das aktuelle Projekt halt "BattleShip" und ich möchte auf das "Highscore" Projekt, welches das Pydev-Projekt ist zugreifen. Muss ich vermutlich anders machen als über die Projektnamen oder?
 
Du solltest grundsätzlich den Konstruktor mit den getrennten Argumenten verwenden.
ProcessBuilder (Java Platform SE 6)
So wird das als ein einziges Argument betrachtet.
Ausserdem brauchst du einen absoluten Pfad zum python Executable, anders wird es nicht gefunden.
Ob das mit dem .. überhaupt so funktionieren wird müsste man mal ausprobieren.
 
Mhhh mit den getrennten Argumenten findet er die Datei nun, auch bei relativer Pfadangabe. Aber er mault, das es keine gültige Anwendung sei? huh?


Java:
try {
                        ProcessBuilder pb = new ProcessBuilder("../Highscore/src/highscore.py", "python");
                        Process p = pb.start();
} 
catch (IOException e) {
				e.printStackTrace();
}

Code:
Cannot run program "../Highscore/src/highscore.py": CreateProcess error=193, %1 ist keine zulässige Win32-Anwendung at java.lang.ProcessBuilder.start(Unknown Source)
 
Als Python Script ist das erste Argument doch die ausführbare Datei oder nicht? Versteh das nicht :noe:
 
Nein, das Script ist nicht ausführbar. Der Interpreter ist das ausführbare Programm, dass das Python Script als argument bekommt.
 
Dankeschön, hab jetzt als erstes Argument einen Pfad zum Interpreter gegeben und als zweites ein Argument zur Datei, scheint zu klappen 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben