5

我已经下载并安装了一个带有 Maven 的 jar(如此处所回答),但现在我需要在项目中使用它。我按照git README ( (require '[clj-http.client :as client])) 上的说明进行操作,但仍然收到此错误:

FileNotFoundException Could not locate clj_http/client__init.class or clj_http/client.clj on classpath:   clojure.lang.RT.load (RT.java:430)
4

3 回答 3

5

当您启动 java 进程时,您需要执行以下操作:

java -cp ./lib/clj-http.jar ./lib/clojure.jar clojure.main

基本上,您需要类路径中的 clojure.jar(REPL 所在的位置)和 clj-http.jar。

假设 clj-http.jar 在 ./lib/ 目录中。或者您可以使用 lein(构建工具,类似于 maven)构建您的项目并让它构建一个 uberjar,这就是我会做的。这里有一个很好的设置 lein 和构建 uberjar 的演练:http: //zef.me/2470/building-clojure-projects-with-leiningen

于 2012-05-30T14:44:40.690 回答
5

该线程上的其他答案肯定会起作用....但是直接在机器的 CLASSPATH 或命令行上添加 jar 可能是一个非常困难的开发策略。. .

在 clojure 应用程序中包含 jar 的最常见、惯用的方法是Leiningen(简单,一步安装在 github 上——初学者应该在这个答案的末尾检查注释以获取警告)...... Leiningen 还可以安装 clojure 环境和为您启动您的 repl,预装正确的 jar 环境。

它本质上是一个 java 依赖管理器和构建工具合二为一 - 即像 ivy 或我们用于 java 开发的 maven Pom.xml。

几个如何使用 Leiningen 以简单且可扩展的方式与多个库交互的示例:

要启动 repl,使 project.clj 文件中的 jar 位于 classpath 上:

lein repl

要在 project.clj 指定的 maven 存储库中更新 jars:

lein deps

最后,lein 让您导出类似于“fatjars”的“uberjars”,即它们为您捆绑了所有依赖项。

关于新 Lein 版本的小更新:初学者注意。

您可以运行两个脚本来安装 Leiningan,运行这个可能更安全:

https://github.com/jayunit100/leiningen/blob/stable/bin/lein稳定版)

而不是这个:

https://raw.github.com/technomancy/leiningen/preview/bin/lein最新更新,预览)。

于 2012-05-30T17:54:35.320 回答
1

在启动 clojure repl 之前将 clj-http.jar 添加到 CLASSPATH 或 CP。

于 2012-05-30T14:27:31.490 回答