Ich habe einige einfachen Code, der Java Apache Exec Klassen verwendet, um externe Prozesse auszuführen.Fehlende Befehlszeilenausgabe von Java-Prozess in Windows
Executor ex = new DefaultExecutor();
ex.setStreamHandler(new PumpStreamHandler(System.out, System.out, System.in));
CommandLine cl = new CommandLine(
"C:\\program.exe");
ex.execute(cl);
}
Für bestimmte Programme Kommandozeile, das funktioniert wie erwartet und bekommt alle die Ausgabe des Programms in den „out“ Strom, während meines eigenen Text in den „in“ Strom zu akzeptieren. Bei anderen Programmen ist die Ausgabe des Prozesses jedoch sichtbar und wird manuell über die Befehlszeile ausgeführt, aber ich bekomme nichts, wenn ich über einen Java-Prozess laufe.
Ich möchte schließlich in die Stdin schreiben und stdout innerhalb des Codes selbst abrufen und analysieren.
Wenn es einen Grund gibt, dass ich nicht weiß, warum einige Programme scheinen Text in der Befehlszeile, aber wenn ich sie als Java-Prozesse ausführen, bekomme ich nichts durch die Streams?
Dies geschieht in Windows.
vielleicht haben Sie das Problem von dieser Frage: http://stackoverflow.com/questions/27249101/windows-prevents-stdout-from-external-command-line-executions-to-be-reedirected-t – radio