ProcessBuilder - Problem mit Ausgabe in der Konsole

Martin240

Grünschnabel
Hallo.

Folgendes Problem stellt sich mir im Moment:

Ich möchte ein Python Script aufrufen aus meinem Programm heraus, dafür habe ich eine statische Methode in der Klasse Python erstellt, die ich aus meinem Hauptprogramm anspreche. Das funktioniert soweit, er startet auch das Script, nur leider macht er das in einem externen Fenster und das lässt den InputReader dann anscheinend ziemlich kalt. Das Pythonscript besteht im Moment aus 2 print-Anweisungen, um die Funktionalität zu testen.

Ich habe auch schon versuch das Pythonscript ohne die rundll zu starten, dann bekomme ich die Meldung, dass die Scriptdatei keine gültige Win32-Anwendung ist. Versuche ich das ganze mit ("python", "highscore.py") zu starten, sagt er mir, dass er die Datei nicht finden kann.

Was ich dann noch probiert habe ist die Lösung mit einer .bat-Datei, welche aber ziemlich unschön ist. Es hat zwar funktioniert, aber das ist ja nicht Sinn der Sache. Ich möchte das ganze wenn möglich auch auf anderen OS zum Laufen bekommen, von daher relativ uninteressant.

Gestern Abend hat das ganze noch funktioniert, doch durch ein kleines Copy&Paste-Missgeschick beim Auslagern in eine extra Klasse musste ich das ganze nochmal neu schreiben. Und ich wüsste grad nicht, was ich anders gemacht habe. Ich bin am verzweifeln :(

Hier der Code:

Java:
public class python {

    public static void startScript() {

        ProcessBuilder py = new ProcessBuilder("rundll32.exe", "url.dll,FileProtocolHandler", "highscore.py");
        
        try {
            Process proc = py.start();
            InputStream is = proc.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String line;
            while((line = br.readLine())!=null) {
                System.out.println(line);
            }
        }
        
        catch(IOException ioe){
            System.out.println(ioe.getMessage());
        }
        
    }
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück