2010-09-16 48 views
3
[email protected]:~/clojure$ clojure 
Clojure 1.0.0- 
user=> (require 'clojure.contrib.str-utils) 
java.io.FileNotFoundException: Could not locate clojure/contrib/str_utils__init.class or clojure/contrib/str_utils.clj on classpath: (NO_SOURCE_FILE:0) 
user=> 

我在安裝clojure時做了什麼錯誤?爲什麼不能clojure找到我的java類?我安裝了java。幫助運行clojure,可能的類路徑問題

[email protected]:~/clojure$ sudo apt-get install sun-java6-jre sun-java6-jdk 
sudo: unable to resolve host apollo 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
sun-java6-jre is already the newest version. 
sun-java6-jdk is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. 


[email protected]:~/clojure$ java -version 
    java version "1.6.0_20" 
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
    Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) 
    [email protected]:~/clojure$ 

請大家幫忙!謝謝!

+0

你從哪裏'得到'Clojure,你是如何「安裝」它的? – Rayne 2010-09-16 18:27:15

回答

6

這是偉大的學習手工想出解決辦法,因爲理解類路徑,使世界變得更美好。在實踐中,許多Clojurian使用leiningen,maven或蛋糕。

個人而言,我會建議使用leiningen

有很多原因不使用自動化工具,這些東西不適合每個人。對於簡單的單線運動員來說,設置它的時間對我來說是值得的。

+0

還有alsow cljr項目檢查出來。 – nickik 2010-09-16 19:37:44

+0

下載lein腳本後,是否還需要運行「lein self-install」 ? – dreish 2010-09-16 20:52:02

+0

我雖然如此,當我檢查gihub上的leiningen頁面時,這一步不在入門指南中。不要以爲它會讓lein自行安裝會受到傷害 – 2010-09-16 21:58:37

1

str utils是clojure-contrib自帶的東西。這不是一個標準的Java庫。所以,只需安裝java不會幫助。當你開始clojure時,確保clojure-contrib jar在類路徑中被提及。您可以從clojure.org獲得最新的(1.2)clojure和clojure-contrib廣告牌

例如,我這是怎麼啓動REPL

java -server -cp ~/clojure-1.2.0.jar:~clojure-contrib-1.2.0.jar:. clojure.main --repl 
+0

感謝您的幫助,可以更具體嗎?我試着運行該行,並得到:http://pastebin.com/wjBrgDwM – vick 2010-09-16 18:15:50

+0

該命令是特定於我的機器。調用repl的一般方法是:java -cp {path-to-clojure-jar}:{path-to-clojure-contrib-jar} :. clojure.main --repl – letronje 2010-09-16 18:46:34

+0

@vick:你需要替換'〜/ clojure-1.2.0.jar'和'〜clojure-contrib-1.2.0.jar'(< - typo - should read'〜/ clojure-contrib ...')位,路徑指向系統上相關罐子的實際副本。從問題文本中,我收集到'〜/ clojure'中有'clojure.jar'的副本,所以你可以使用'〜/ clojure/clojure.jar';如果你把contrib jar放在同一個目錄下,它的路徑看起來很相似。 – 2010-09-16 18:48:03

1

我使用maven來處理所有的依賴關係,它工作的一種享受。

我在這裏寫了一篇博文: http://learnclojure.blogspot.com/2010/08/clojure-emacs-swank-slime-maven-maven.html 關於如何在新機器上從零開始設置工作clojure/slime設置。大概需要一分鐘。

無論如何,如果你想要的是一個運行REPL,那麼你可以:

安裝Maven

獲取從博客帖子pom.xml中,並把它放在一個目錄。

在該目錄中運行$ MVN的Clojure:REPL

Maven會下載你需要的一切,並啓動一個REPL,這應該是啓用的JLine,所以它的實際可用。

我知道這可以在Ubuntu上運行,它應該在所有其他Linux和Mac OSX上正常工作。 有誰知道它是否也適用於Windows?

但是如果你可以使用emacs,clojure/emacs和slime的組合是無與倫比的。 如果您有任何問題,請告訴我。