2012-04-24 140 views
4

嘗試在linux中運行lein時出現以下異常。嘗試運行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是什麼,除了我顯然必須擁有它。

+0

當發佈leiningen問題時,它會幫助你發佈你的project.clj文件。 – 2012-04-24 23:17:26

+1

stacktrace中的'libgcj.so'是一個可怕的紅旗。對於任何現實的Java程序,gcj都不起作用。很遺憾有些軟件包管理者更喜歡安裝gcj而不是openjdk或oracle的jdk,但是如果你想用java做任何事情,我建議扔掉gcj並安裝openjdk。 – amalloy 2012-04-25 03:35:43

回答

1

有關frusteration對不起,

Leiningen是採取的痛苦了黑客獲得一個新的Clojure項目的構建工具。 在leiningen存在之前,很多人會嘗試通過下載jar文件從源代碼構建它來「安裝」clojure。您不必執行任何操作,只需在leiningen project.clj文件中指定要使用的版本,並將其作爲該項目的依賴項在本地安裝。

有運行:

  • 雷音新hello_clojure
  • CD hello_clojure
  • 編輯project.clj並將其設置爲使用Clojure的1.3.0 :dependencies [[org.clojure/clojure "1.3.0"]
  • 雷音的DEP
  • 雷音REPL
  • (+ 1 2 3 4)

當事情出錯,leiningen我一般:

  • 雷音升級
  • RM的lib/*
  • 雷音的DEP

這樣的問題是罕見的(對我來說),通常相當具體,所以也許你會很好地投入到irc.freenode.net上的#clojure並問。這是一個非常友好的驕傲,別擔心。

+0

Liningen是否需要使用IntelliJ IDEA之類的IDE?我並不想使用IDE,但它是唯一可行的。我甚至無法運行clojure 1.4.0 repl而不會出錯。我試着用螞蟻建造clojure,但那也不管用。哎呀,我不知道我是否想要打擾,這一切都很混亂。 :(**編輯:好吧,我現在正在工作,我不知道我做了什麼,但它工作正常!謝謝你,並且很抱歉有麻煩。** – 2012-04-24 23:09:49

+0

leiningen通常用於IDE以外或者可以自己使用,你根本不需要建立clojure。 – 2012-04-24 23:16:07

+0

不用擔心,它值得到IRC#clojure頻道,以便與這類事情進行快速交互式幫助 – 2012-04-24 23:18:04

相關問題