为什么除了白炽灯本身之外,白炽灯的名称空间需要clojure/core/matrix类或.clj?
在.clj文件中,我有(使用“(白炽灯核心io…)。尝试计算代码时发生此错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clojure/core/matrix\uu init.class或clojure/core/matrix.clj。如果我将代码更改为:(use'(incater)),那么除了没有必要的名称空间可用之外,一切都正常,这是意料之中的。在过去的18个月里,我一直很高兴地将jEdit与clojure插件一起使用,并仔细验证了我的类路径是否正常。我尝试(使用“…math.combinations”)和csv&json JAR(这些都正常工作),以合理地确定这不是一个jEdit配置问题。我在clojure/core jar中查找“matrix”,但没有找到它。非常感谢您对解决此问题的任何帮助 经进一步调查:为什么除了白炽灯本身之外,白炽灯的名称空间需要clojure/core/matrix类或.clj?,clojure,jedit,incanter,Clojure,Jedit,Incanter,在.clj文件中,我有(使用“(白炽灯核心io…)。尝试计算代码时发生此错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clojure/core/matrix\uu init.class或clojure/core/matrix.clj。如果我将代码更改为:(use'(incater)),那么除了没有必要的名称空间可用之外,一切都正常,这是意料之中的。在过去的18个月里,我一直很高兴地将jEdit与clojure插
我想我已经找到了问题的根源:在clatrix-0.3.0命名空间声明中,clojure.core.matrix是必需的。当我从类路径中删除clatrix并计算(使用“(incanter core…)时,会发生以下错误:FileNotFoundException无法在类路径clojure.lang.RT.load(RT.java:443)上找到clatrix/core\uu init.class或clatrix/core.clj。当clatrix被添加到类路径时,就会出现我的原始错误(即找不到clojure.core.matrix)。白炽灯核心有一个Matrix.class文件。似乎白炽灯依赖于clatrix,而clatrix依赖于clojure.core。不存在的矩阵。如何解决这个问题或有解决办法?这里的问题是您没有为库提供可传递的依赖项。clojure.core.matrix不是clojure.core的一部分。显然,无论Jedit使用什么方法来运行Clojure,都无法检测或解决您的依赖关系
虽然此依赖项解析可以手动完成,但让leiningen在开发期间解析依赖项并设置类路径,并在开发期间使用
lein repl
任务启动交互式repl,这是一项不太容易出错的任务,也不太耗时。leinrepl启动一个nrepl服务器,该服务器有一个定义良好的API,多个编辑器/编程环境可以连接到该API。一个好的clojure开发编辑器应该提供一些连接到nrepl服务器的方法。clojure.core不提供。此外,如果您使用它来解析依赖项并构建类路径,它将自动找到各种库所需的库。我使用leiningen进行完整构建。我发现jEdit是一个开发和测试clojure函数和模块的简单而有用的编辑器。然后你需要手动解决依赖关系。关于你的编辑:你仍然不明白。Clojure.core.matrix存在。我在上面链接到它。如果您使用lein,lein将自动提供它。如果您决定手动解决依赖项,那么您需要找到它并将其放在类路径中。希望Alex Ott能够阐明与我上述问题相关的其他信息,因为这似乎与Incater有关。否。问题是它有您没有提供的依赖项。白炽灯没有问题。您需要提供其依赖项,或者使用自动提供这些依赖项的工具。