在异常情况下,Clojure REPL 无响应

4
如果我启动了REPL,然后执行一些会抛出异常的操作,比如`(use 'non-existent-thing)`,那么之后REPL就不再评估我输入的任何内容了。有没有特殊的按键可以让它转过来,面对我,张开双臂并再次倾听?还是必须使用ctrl-d重新启动,将所有内容重新打出来,并且这次要正确?具体错误信息如下:

Exception in thread "Thread-1" java.lang.RuntimeException: java.io.FileNotFoundException: Could not locate non_existent_thing__init.class or non_existent_thing.clj on classpath: (NO_SOURCE_FILE:0)

编辑说明:我应该提到我正在使用lein repl。

当我使用Eclipse时,我也遇到了同样的问题。我认为这可能是REPL本身的问题? - semisight
它可能是Leiningen的问题,因为我刚刚发现它不能在IntelliJ REPL中运行。 - Hendekagon
1
为什么不能在Emacs中使用lein swank - Abimaran Kugathasan
1个回答

0

我从未见过这种情况,我在Windows、Linux和OSX上使用了lein repl。唯一有点奇怪的是,我必须按一两次回车键才能回到repl提示符。

以防万一...你使用的leiningen版本是什么?最近的JDK?Clojure版本?


Leiningen 1.5.0-SNAPSHOT 运行于 Java 1.6.0_22 Java HotSpot(TM) 64-Bit Server VM,Clojure 1.2.0,Ubuntu 10.04。我执行了命令 "lein new blank",然后执行了命令 "lein repl"。 - Hendekagon
你的项目中是否添加了 [ring/ring-devel "0.2.0"]?我认为你可能忘记添加它了。 - Abimaran Kugathasan
我刚刚在另一台机器上尝试了一下,问题并没有出现,所以这一定是我的lein安装出了问题... - Hendekagon
刚刚升级到最新的Leiningen,问题解决了,一切都好了。 - Hendekagon
我想你指的是我在使用leiningen引用classpath时遇到的问题,对吗?如果我没记错,在我的Windows工作机器上,Apple已将QuickTime添加到了classpath中。如果我在JDK 7下运行lein repl,它会失败,因为它找不到重要的类,但在jdk 6下运行时就没有这个问题。当我删除了classpath条目后,无论是在哪个JVM下都可以正常运行。另外,你指的是CCW repl发行说明的哪一部分?它是一个很长的文档。 - BillRobertson42
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接