尝试运行lein时获得异常

时间:2012-04-24 21:35:32

标签: clojure leiningen

尝试在linux中运行lein时出现以下异常。

Exception in thread "main" java.lang.NoClassDefFoundError: clojure.core.protocols$fn__5393
   at java.lang.Class.initializeClass(libgcj.so.10)
   at clojure.core.protocols__init.load(Unknown Source:16)
   at clojure.core.protocols__init.<clinit>(Unknown Source)
   at java.lang.Class.initializeClass(libgcj.so.10)
   at java.lang.Class.forName(libgcj.so.10)
   at clojure.lang.RT.loadClassForName(RT.java:1578)
   at clojure.lang.RT.load(RT.java:399)
   at clojure.lang.RT.load(RT.java:381)
   at clojure.core$load$fn__4519.invoke(core.clj:4915)
   at clojure.core$load.doInvoke(core.clj:4914)
   at clojure.lang.RestFn.invoke(RestFn.java:408)
   at clojure.core__init.load(Unknown Source:5342)
   at clojure.core__init.<clinit>(Unknown Source)
   at java.lang.Class.initializeClass(libgcj.so.10)
   at java.lang.Class.forName(libgcj.so.10)
   at clojure.lang.RT.loadClassForName(RT.java:1578)
   at clojure.lang.RT.load(RT.java:399)
   at clojure.lang.RT.load(RT.java:381)
   at clojure.lang.RT.doInit(RT.java:416)
   at clojure.lang.RT.<clinit>(RT.java:302)
   at java.lang.Class.initializeClass(libgcj.so.10)
   at clojure.main.<clinit>(main.java:20)
   at java.lang.Class.initializeClass(libgcj.so.10)
   at java.lang.Class.forName(libgcj.so.10)
   at java.lang.Class.forName(libgcj.so.10)
   at jline.ConsoleRunner.main(ConsoleRunner.java:69)
Caused by: java.lang.VerifyError: verification failed at PC 214 in      
clojure.core.protocols$fn__5393:invoke((Ljava.lang.Object;Ljava.lang.Object;Ljava.lang.Obje    ct;)Ljava.lang.Object;): incompatible type on stack
   at java.lang.Class.initializeClass(libgcj.so.10)
   ...25 more

我按照github页面上的说明操作,但没有运气。我认为今天开始学习clojure会很有趣,但我只有问题,我甚至不知道leiningen是什么,除了我显然必须拥有它。

1 个答案:

答案 0 :(得分:2)

抱歉抱歉,

Leiningen是一个构建工具,可以消除对新的clojure项目进行黑客攻击的痛苦。 在leiningen存在之前,许多人会尝试通过从源代码下载jar文件来“安装”clojure。您只需在leiningen project.clj文件中指定要使用的版本,而不是执行任何操作,并将其作为该项目的依赖项在本地安装。

你跑了吗?

  • lein new hello_clojure
  • cd hello_clojure
  • 编辑project.clj并将其设置为使用clojure 1.3.0 :dependencies [[org.clojure/clojure "1.3.0"]
  • lein deps
  • lein repl
  • (+ 1 2 3 4)

当leiningen出现问题时,我通常会这样做:

  • lein upgrade
  • rm lib / *
  • lein deps

这样的问题并不常见(对我来说)并且通常相当具体,所以也许你最好放到irc.freenode.net上的#clojure并询问。这是一个非常友好的骄傲不要担心。