Ich möchte den std-Ausgang des folgenden Python-Skripts mit Java Runtime drucken. Mein ideales Ergebnis wäre einfach "Hallo Welt" auszudrucken. Warum bekomme ich java.io.IOException: Cannot run program "python": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start
? Meine Pfad- und Python-Umgebungsvariablen sind ordnungsgemäß konfiguriert.Wie kann ich die std-Ausgabe von Python-Skript mit Java-Laufzeit drucken?
String commandline = "python /c start python C:\\Users\\Name\\HelloWorld.py"
try {
//TODO java.io.IOException: Cannot run program "dir"
Process process = Runtime.getRuntime().exec(commandline);
process.waitFor();
// Store command line output
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append(System.getProperty("line.separator"));
}
String result = builder.toString();
if (result != null) {
PrintWriter out = resp.getWriter();
out.println("<div>" + result + "</div>");
System.exit(0);
} else {
PrintWriter out = null;
}
} catch (IOException e1) {
PrintWriter out = resp.getWriter();
e1.printStackTrace(out);
} catch (InterruptedException e2) {
PrintWriter out = resp.getWriter();
e2.printStackTrace(out);
}
Sie könnten dies tun ... warum kaufen? Warum emulieren Sie die Funktionalität der Python-Skripte nicht in Java oder umgekehrt? Ich werde eine Antwort hinzufügen, aber egal was, es wird nicht portierbar sein, und es wird nicht so gut wie eine native Lösung in Java oder Python sein –