为什么在lein repl中运行函数时会得到FileNotFoundExpection?

时间:2016-04-18 11:19:40

标签: clojure leiningen

使用此Clojure project.clj我使用

在Windows cmd中启动了REPL
lein figwheel

我运行了以下宏

(ns bota-web.views
    (:require [re-frame.core :as re-frame]
              [re-com.core :as re-com]))

结果为零。我期待这个结果。

然后我使用

在Windows cmd中启动了一个REPL
lein repl

我运行了相同的宏,看下面发生了什么。

D:\Dropbox\DATA\MyClojureProjects\bota-web>lein repl
nREPL server started on port 59329 on host 127.0.0.1 - nrepl://127.0.0.1:59329
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) Client VM 1.8.0_45-b15
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)
Results: Stored in vars *1, *2, *3, an exception in *e

user=> (ns bota-web.views
  #_=>     (:require [re-frame.core :as re-frame]
  #_=>               [re-com.core :as re-com]))

FileNotFoundException Could not locate re_frame/core__init.class or re_frame/core.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.  clojure.lang.RT.load (RT.java:456)
user=>

鉴于project.clj可以确定为什么我这次收到了FileNotFoundException?

1 个答案:

答案 0 :(得分:1)

当您运行lein figwheel时,您启动 ClojureScript REPL,以便require CLJS名称空间(例如re-frame.core)。

当您使用lein repl时,您启动 Clojure REPL,它仅适用于Clojure名称空间,因此错误:Clojure尝试查找名为re-frame.core的Clojure名称空间,但它失败了。