4

尝试在 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 是什么,除了我显然必须拥有它。

4

1 回答 1

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"]
  • 莱因部门
  • 莱因雷普
  • (+ 1 2 3 4)

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

  • 莱因升级
  • rm库/*
  • 莱因部门

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

于 2012-04-24T22:39:39.327 回答