Clojure 尝试运行lein时遇到异常

Clojure 尝试运行lein时遇到异常,clojure,leiningen,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.proto

尝试在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
线程“main”java.lang.NoClassDefFoundError中的异常:clojure.core.protocols$fn__5393 位于java.lang.Class.initializeClass(libgcj.so.10) 在clojure.core.protocols\uuu init.load(未知源:16)处 在clojure.core.protocols\uuu init。(未知源) 位于java.lang.Class.initializeClass(libgcj.so.10) 位于java.lang.Class.forName(libgcj.so.10) 位于clojure.lang.RT.loadClassForName(RT.java:1578) 在clojure.lang.RT.load处(RT.java:399) 在clojure.lang.RT.load处(RT.java:381) 在clojure.core$load$fn__4519.invoke处(core.clj:4915) 在clojure.core$load.doInvoke(core.clj:4914) 位于clojure.lang.RestFn.invoke(RestFn.java:408) 在clojure.core\uuu init.load(未知来源:5342) 在clojure.core\uuu init(未知源) 位于java.lang.Class.initializeClass(libgcj.so.10) 位于java.lang.Class.forName(libgcj.so.10) 位于clojure.lang.RT.loadClassForName(RT.java:1578) 在clojure.lang.RT.load处(RT.java:399) 在clojure.lang.RT.load处(RT.java:381) 在clojure.lang.RT.doInit(RT.java:416) 在clojure.lang.RT.(RT.java:302) 位于java.lang.Class.initializeClass(libgcj.so.10) 在clojure.main.(main.java:20) 位于java.lang.Class.initializeClass(libgcj.so.10) 位于java.lang.Class.forName(libgcj.so.10) 位于java.lang.Class.forName(libgcj.so.10) 位于jline.ConsoleRunner.main(ConsoleRunner.java:69) 原因:java.lang.VerifyError:中的PC 214验证失败 clojure.core.protocols$fn__5393:invoke((Ljava.lang.Object;Ljava.lang.Object;Ljava.lang.Obje-ct;)Ljava.lang.Object;):堆栈上的类型不兼容 位于java.lang.Class.initializeClass(libgcj.so.10) …还有25个
我已经按照他们github页面上的说明进行了操作,但运气不好。我原以为今天开始学习clojure会很有趣,但我遇到的只是问题,我甚至不知道leiningen是什么,只是我显然必须要有它。

很抱歉,我有点沮丧

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

你参加过:

  • lein new hello_clojure
  • cd你好
  • 编辑project.clj并将其设置为使用clojure 1.3.0
    :依赖项[[org.clojure/clojure“1.3.0”]
  • 莱因德普斯
  • 莱恩·雷普
  • (+1234)
当leiningen出现问题时,我通常会:

  • 莱因升级
  • rm库/*
  • 莱因德普斯

像这样的问题(对我来说)很少见而且通常非常具体,所以也许你最好访问irc.freenode.net上的#clojure并提问。这是一个非常友好的群体,别担心。

如果我使用IntelliJ IDEA这样的IDE,是否需要Liningen?我并不真的想使用IDE,但这是唯一可行的。我甚至无法运行clojure 1.4.0 repl而不出错我试着用ant构建clojure,但也没用。哦,天哪,我不知道我是否想麻烦,这太令人困惑了(编辑:好的,我现在开始工作了,我不知道我做了什么,但它正在工作!谢谢你,很抱歉给你添麻烦。leiningen通常是在IDE之外使用的,尽管两者都可以单独使用。你基本上永远不需要构建clojure。不用担心,它值得访问IRC#clojure频道以获得快速交互式帮助在发布leiningen问题时,发布project.clj文件会有很大帮助。
libgcj。因此,stacktrace中的
是一个可怕的危险信号。gcj与任何现实的java程序一样,根本不起作用。非常遗憾的是,一些包管理者宁愿安装gcj而不是openjdk或oracle的jdk,但是如果你想要用java做任何事情,我建议扔掉gcj并安装openjdk。