2012-03-26 12 views
1

Ich schreibe einen cmd-Wrapper, der Ströme für jede cmd-Anwendung abfangen sollte, so wie jeder andere cmd-Wrapper. Bisher habe ich Erfolg und die meisten Apps funktionieren gut wie 'Ping' und andere. Allerdings, wenn ich Clojure oder Scala REPLs starte, ist zunächst alles in Ordnung, aber wenn ich eine mehrzeilige Funktion eingib oder wenn ich einen Fehler erhalte, hört das Messaging auf, als ob etwas in der Pipe steckenbleibt. Jegliche Kommunikation zwischen der REPL und meinem Wrapper stoppt. Da ich sowohl Stdout- als auch Stderr-Streams von allen Apps kanalisiere, die ich durch den Wrapper starte, ist es mir unklar, was ich in dieser Situation tun soll. Warum wird die Ausgabe nicht abgefangen?Windows CMD Wrapper schlechte Kommunikation mit Clojure und Scala REPL

UPDATE: Eine neue Information wird vom Benutzer om-nom-nom vorgeschlagen, die enthüllt, dass Scala und Clojure REPLs jline für erweiterte Interaktionskonsolen verwenden. Das wirft einige neue Fragen auf: Warum unterscheidet sich die Arbeit mit jline anders als mit Standard-Streams? Gibt es Möglichkeiten, die jline-Streams auf ähnliche Weise wie normale Streams zu routen? Wie ist die beste Art mit jline zu arbeiten?

Antwort