2016-05-25 6 views
0

Sollte ich nicht einfach in der Befehlszeile "Python" eingeben und den Text, der ausgespuckt wird abrufen?Kann nicht std Ausgabe von Python-Skript in der Befehlszeile als String speichern

try { 
     Process proc = Runtime.getRuntime().exec("python"); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
     String result = null; 
     while ((result = reader.readLine()) != null) { 
      PrintWriter out = resp.getWriter(); 
      out.println("<div>" + result + "</div>"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

Das würde gewünschte Ergebnis sein:

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AM 
D64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 
+0

Also, was es * statt * tut? –

+0

Nichts. Ich bekomme nicht einmal einen Fehler. Es scheint einfach nicht den Python-Befehl von Runtime interpretieren zu wollen. – santafebound

+0

so ist es in der 'while' Schleife fest, oder es beendet einfach alles, oder was? –

Antwort

0

Lauf python C:\Users\Me\HelloWorld.py das Skript ausführt und sammelt die Standardausgabe:

try { 
     Process proc = Runtime.getRuntime().exec("python C:\Users\Me\HelloWorld.py"); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
     String result = null; 
     while ((result = reader.readLine()) != null) { 
      PrintWriter out = resp.getWriter(); 
      out.println("<div>" + result + "</div>"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    }