在我的.clj文件中(使用'(incanter core io ...))。在尝试评估该代码时会出现以下错误: FileNotFoundException在类路径: clojure.lang.RT.load (RT.java:443)上找不到clojure/core/matrix.class或clojure/core/matrix.clj。如果我把代码改成这样:(use '(incanter)),那么一切都可以了,除了没有任何必要的命名空间可用,这是意料之中的。在过去的18个月里,我一直非常愉快地将jEdit与clojure插件一起使用,并严格验证了我的类路径是正确的。我尝试了(使用'...math.combinatorics)和csv & json jar(这些都可以正常工作),以合理地确定这不是jEdit配置问题。我在clojure/core jar中查找了“matrix”,但没有找到。任何帮助解决这个问题的人都非常感谢。
经过进一步的研究:我想我已经找到了问题的根源:在clatrix-0.3.0命名空间中,需要声明clojure.core.matrix。当我从类路径中删除clatrix并求值时(使用'(incanter core ...))出现此错误: FileNotFoundException无法在类路径clojure.lang.RT.load (RT.java:443)上找到clatrix/core_init.class或clatrix/core.clj。当clatrix被添加到类路径中时,我原来的错误就发生了(即找不到clojure.core.matrix)。Incanter-core确实有一个Matrix.class文件。它似乎依赖于clatrix,而clatrix依赖于clojure.core。一个不存在的矩阵。如何解决这个问题,或者有变通的办法?
发布于 2014-01-25 06:53:49
这里的问题是你没有为你的库提供传递依赖。clojure.core.matrix不是clojure.core的一部分。显然,无论Jedit使用什么方法来运行Clojure,它都不会检测或解析您的依赖项。
虽然这种依赖关系解析可以手动完成,但让leiningen在开发过程中解析依赖关系并设置类路径,并在开发过程中使用lein repl任务来启动交互式repl,这是一项不太容易出错的任务,也是一项耗时较少的任务。Lein repl启动一个nrepl服务器,它有一个定义良好的API,可以连接多个编辑器/编程环境。一个好的clojure开发编辑器应该提供一些连接到nrepl服务器的方法。
https://stackoverflow.com/questions/21338623
复制相似问题