我在编译.clj
文件时遇到问题,这些文件驻留在我运行nREPL服务器进程的项目中:
lein new xxx
创建了一个新项目。 lein repl
启动了nREPL。 lein repl :connect localhost:12345/repl
。我创建了一个简单的命名空间文件,并将其保存在项目中的适当位置:
(ns remote.one)
(def foo 42)
现在在客户端上我调用了这个函数
(compile 'remote.one)
我有以下例外:
CompilerException java.lang.ClassNotFoundException: remote.one, compiling:(C:\Users\xxx\AppData\Local\Temp\form-init2429492334116477513.clj:1:1)
现在我原本期望编译调用在不在客户端的服务器上执行。它可以完成吗?
由于
答案 0 :(得分:1)
我刚尝试过,它对我有用。我第一次尝试时发生的事情是我错过了一步:将当前目录设置为项目。我看到你的描述中也缺少这个步骤,也许这就是它在你的情况下不起作用的原因。
lein new remote
创建新项目。cd remote
。 lein repl :headless
从项目文件夹启动nREPL服务器(我现在意识到这也与您的描述不同)。lein repl :connect localhost:port/repl
中启动nREPL客户端~/.
。~/remote/src/remote/one.clj
。(compile 'remote.one)
。(使用Leiningen 2.3.4 on Java 1.7.0 Java HotSpot(TM) 64-Bit Server VM
和Clojure 1.5.1
)。