2012-03-26 38 views
1

我正在寫一個cmd包裝,它應該像任何其他cmd包裝一樣,爲任何cmd應用程序攔截流。到目前爲止,我已經成功完成了大部分應用程序的工作,如'ping'等。但是,當我啓動Clojure或Scala REPL時,首先會出現問題,但是當我輸入多行函數或出現錯誤時,消息就會停止,就像管道中發生某些事情一樣。 REPL和我的包裝之間的任何通信都會停止。由於我通過包裝器啓動了所有應用程序的stdout和stderr流,因此我不清楚在這種情況下要做什麼,爲什麼輸出不被攔截?Windows cmd包裝與Clojure和Scala的錯誤溝通REPLs

更新:用戶om-nom-nom提供了一個新信息,該信息顯示Scala和Clojure REPL正在使用jline進行高級控制檯交互處理。因此,這提出了幾個新問題:爲什麼使用jline不同於標準流?有沒有辦法以類似於普通流的方式重新路由jline流?像這樣使用jline的最佳方式是什麼?

回答