admin@apollo:~/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时我做错了什么?为什么cant clojure找不到我的java类?我安装了java。
admin@apollo:~/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.
admin@apollo:~/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)
admin@apollo:~/clojure$
请帮忙!谢谢!
答案 0 :(得分:6)
很高兴能够手动学习这一点,因为理解类路径会让世界变得更美好。在实践中,许多Clojurians使用leiningen,maven或cake。
我个人建议使用leiningen:
有很多理由不使用自动化工具,这些东西并不适合所有人。在设置它的时候,即使对于简单的单行也是值得的。
答案 1 :(得分:1)
str utils是clojure-contrib附带的东西。它不是标准的java lib。所以,简单地安装java不会有帮助。当你启动clojure时,确保在类路径中提到了clojure-contrib jar。你可以从clojure.org获得最新的(1.2)clojure和clojure-contrib jar
例如这就是我启动REPL的方式
java -server -cp ~/clojure-1.2.0.jar:~clojure-contrib-1.2.0.jar:. clojure.main --repl
答案 2 :(得分:1)
我使用maven来处理所有依赖项,它可以解决问题。
我在这里写了一篇博文: http://learnclojure.blogspot.com/2010/08/clojure-emacs-swank-slime-maven-maven.html 关于如何在新机器上从头开始设置工作clojure / slime设置。大约需要一分钟。
无论如何,如果你想要的只是一个正在运行的repl,那么你可以:
安装maven
从blogpost获取pom.xml,并将其放在目录中。
在该目录中运行$ mvn clojure:repl
Maven将下载您需要的所有内容并启动一个repl,它应该是jline启用的,因此它实际上是可用的。
我知道这适用于Ubuntu,它应该适用于所有其他linux和mac osx。 有谁知道它是否也适用于Windows?
但是如果你可以使用emacs,那么clojure / emacs和slime的组合是无与伦比的。 如果您有任何问题,请告诉我。