Chr*_*ris 5 java jar clojure classpath
我已经下载并安装了一个带有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)
Run Code Online (Sandbox Code Playgroud)
当你启动java进程时,你需要做:
java -cp ./lib/clj-http.jar ./lib/clojure.jar clojure.main
Run Code Online (Sandbox Code Playgroud)
基本上你需要clojure.jar(这是REPL所在的位置)和类路径中的clj-http.jar.
假设clj-http.jar位于./lib/目录中.或者你可以用lein构建你的项目(构建工具,类似于maven)并让它构建一个uberjar,这就是我要做的.有设立雷音并在这里建立一个uberjar的一个很好的演练:http://zef.me/2470/building-clojure-projects-with-leiningen.
这个线程上的其他答案肯定会起作用....但是直接在机器的CLASSPATH或命令行上添加jar可能是一个非常困难的开发策略...
在一个clojure应用程序中包含jar的最常见的惯用方法是Leiningen(简单,一步安装在github上 - begginers应该在这个答案的末尾检查注释以获取警告)...... Leiningen也可以安装clojure环境和为您启动您的repl,预装正确的jar环境.
它本质上是一个java依赖管理器和构建工具集合在一起 - 就像常春藤或我们用于Java开发的maven Pom.xml.
有关如何使用Leiningen以简单且可扩展的方式与多个库进行交互的几个示例:
要启动repl,以便project.clj文件中的jar包在类路径中:
lein repl
Run Code Online (Sandbox Code Playgroud)
要更新project.clj指定的maven仓库中的jar:
lein deps
Run Code Online (Sandbox Code Playgroud)
最后,lein让你导出类似于"fatjars"的"uberjars",即他们拥有捆绑给你的所有依赖项.
关于新Lein版本的一个小更新:关于begginers的注意事项.
您可以运行两个脚本来安装Leiningan,运行此脚本可能更安全:
https://github.com/jayunit100/leiningen/blob/stable/bin/lein(稳定版)
而不是这一个:
https://raw.github.com/technomancy/leiningen/preview/bin/lein(最新更新,这是一个预览版).
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |