2014-03-04 34 views
1

爲什麼試圖從控制檯用BufferedReader凍結Leiningen REPL讀取一行?Leiningen凍結控制檯輸入

lein repl 
nREPL server started on port 65142 
REPL-y 0.2.0 
Clojure 1.5.1 
    Docs: (doc function-name-here) 
      (find-doc "part-of-name-here") 
    Source: (source function-name-here) 
Javadoc: (javadoc java-object-or-class-here) 
    Exit: Control+D or (exit) or (quit) 

user=> (import [java.io BufferedReader BufferedWriter InputStreamReader]) 
java.io.InputStreamReader 
user=> (.readLine (BufferedReader. (InputStreamReader. System/in))) 
+0

嘗試(讀線)看看是否發生了相同的事情 – KobbyPemson

+0

https://www.refheap.com/52027 mabe嘗試降級到lein 2.1.2(我的版本,你看到的粘貼) – noisesmith

回答

1

調用lein repl實際啓動一個新的後臺服務器進程評估代碼;您在控制檯中看到的是客戶端進程,它將代碼發送到服務器進行評估,然後顯示返回的結果。我懷疑這裏發生的是,當REPL服務器評估System/in時,它實際上是指服務器進程的標準輸入,它不能從客戶端寫入。

更換(InputStreamReader. System/in)*in*應該讓你的代碼從REPL工作,以及時lein runjava直接啓動的。