Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure Leiningen在控制台输入上冻结_Clojure_Leiningen_Console Input - Fatal编程技术网

Clojure Leiningen在控制台输入上冻结

Clojure Leiningen在控制台输入上冻结,clojure,leiningen,console-input,Clojure,Leiningen,Console Input,为什么试图用BufferedReader从控制台读取一行会冻结Leiningen REPL 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

为什么试图用BufferedReader从控制台读取一行会冻结Leiningen REPL

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)))

调用
leinrepl
实际上启动了一个新的后台服务器进程来评估代码;您在控制台中看到的是一个客户端进程,它将代码发送到服务器进行评估,然后显示返回的结果。我怀疑这里发生的是,当REPL服务器在中计算
System/in时,它实际上是指服务器进程的stdin,您无法从客户端写入它

(InputStreamReader.System/in)
替换为
*in*
应该允许您的代码从REPL以及直接启动
lein run
java

Try(read line)时工作。查看是否发生同样的情况。请尝试降级到lein 2.1.2(我的版本,如粘贴中所示)