我下载了Clojure 1.2 https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip,将其解压缩到/ Library目录下,创建了CLOJURE_HOME,将$ CLOJURE_HOME / script添加到我的$ PATH。
当我尝试运行位于脚本目录下的clj或repl脚本时,我收到此错误:
线程“main”中的异常java.lang.NoClassDefFoundError:jline / ConsoleRunner 引起:java.lang.ClassNotFoundException:jline.ConsoleRunner 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301) 在java.lang.ClassLoader.loadClass(ClassLoader.java:248)
好的,jline.jar不在CLASSPATH中,所以我检查了clj和repl脚本:
CLASSPATH=src/clj:test:test-classes:classes/:script/jline-0.9.94.jar:../clojure-contrib/target/clojure-contrib-1.2.0-SNAPSHOT.jar
if [ -z "$1" ]; then
exec java -server jline.ConsoleRunner clojure.main
else
SCRIPT=$(dirname $1)
export CLASSPATH=$SCRIPT/*:$SCRIPT:$CLASSPATH
exec java -Xmx3G -server clojure.main "$1" "$@"
fi
我在$ CLOJURE_HOME /脚本下下载了jline.jar,但我仍然遇到同样的错误。
这引出了我的问题:
无论如何https://github.com/downloads/clojure/clojure/clojure-1.2.0.zip的作用是什么?
它应该用于安装Clojure吗?或者只是建立并获得clojure.jar?
我注意到没有人在谈论以这种方式安装Clojure
我错过了什么吗?
答案 0 :(得分:1)
作为JVM语言的Clojure必须处理JVM类路径。这使得“安装”它有点笨拙和令人困惑。不要像这样自己安装,尝试一些像cljr和cake这样的工具。我写了一篇关于此的博文可能会有所帮助:http://blog.raynes.me/?p=48
Clojure社区的大多数人都没有“安装”Clojure。大多数人使用构建工具和/或cljr。将Clojure安装到中心位置没有多大意义,当你不可避免地需要依赖管理时,无论如何都会将罐子复制到各个地方。无论如何,让工具为你处理类路径要容易得多。
答案 1 :(得分:0)
存在clojure.zip文件,因此编写工具的人可以使用工具来获取所需的部件;)
对于没有编写工具的人,他们要么正在使用github的最新分支,所以他们使用git pull得到Clojure,或者他们正在使用上面提到的liningen,cake,cljr,逆时针(eclipse),la clojure( intellij),或netbeans。