FileNotFoundException找不到clojure / java / jdbc__init.class

时间:2014-04-18 17:21:06

标签: jar clojure namespaces require

我在clojure中导入jar有问题。 我使用lein来添加依赖项。 这是来自project.clj的代码

(defproject recommendation "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
     :license {:name "Eclipse Public License"
      :url "http://www.eclipse.org/legal/epl-v10.html"}
      :dependencies [[org.clojure/clojure "1.5.1"]
                     [org.clojure/java.jdbc "0.0.6"]         ;; jdbc 
                     [mysql/mysql-connector-java "5.1.6"]]
  :aot :all
  :main recommendation.core)

我输入了命令lein deps,并在lib文件夹中下载了3个jar。

这是来自recommendation.core的代码

  

(ns recommended.core
        (:require [clojure.java.jdbc:as sql]))

我得到例外:

FileNotFoundException Could not locate clojure/java/jdbc__init.class or clojure/java/jdbc.clj on classpath:   clojure.lang.RT.load (RT.java:443)

有人可以告诉我哪里错了,该怎么办?

2 个答案:

答案 0 :(得分:3)

这是我的依赖行:

[org.clojure/java.jdbc "0.2.3"]

来自我的一个使用jdbc的项目的需求行

(:require [clojure.java [jdbc :as sql]])

如果这对我的标准leiningen修复步骤没有任何帮助:

  1. lein deps并寻找错误
  2. lein clean
  3. lein upgrade
  4. lein deps:tree and looking for strangeness
  5. rm -rf target /#这个只帮助我搞乱了本地代表。
  6. rm~ / .m2 / repository -rf#这是最后的手段,下载量很大。
  7. 在irc.freenode.net上加入#leiningen并寻求帮助
  8. PS:我发现this video有助于获取名称空间的句柄。

答案 1 :(得分:0)

将依赖项行更新为最新的jdbc.java版本: https://github.com/clojure/java.jdbc

在撰写本文时是版本0.7.3:

:dependencies [[org.clojure/clojure "1.8.0"]  [org.clojure/java.jdbc "0.7.3"]]