Clojure可以这种方式安装吗?

时间:2010-12-09 03:30:03

标签: clojure jvm-languages

我下载了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 我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

作为JVM语言的Clojure必须处理JVM类路径。这使得“安装”它有点笨拙和令人困惑。不要像这样自己安装,尝试一些像cljr和cake这样的工具。我写了一篇关于此的博文可能会有所帮助:http://blog.raynes.me/?p=48

总结:查看cljrcakeleiningen

Clojure社区的大多数人都没有“安装”Clojure。大多数人使用构建工具和/或cljr。将Clojure安装到中心位置没有多大意义,当你不可避免地需要依赖管理时,无论如何都会将罐子复制到各个地方。无论如何,让工具为你处理类路径要容易得多。

答案 1 :(得分:0)

存在clojure.zip文件,因此编写工具的人可以使用工具来获取所需的部件;)

对于没有编写工具的人,他们要么正在使用github的最新分支,所以他们使用git pull得到Clojure,或者他们正在使用上面提到的liningen,cake,cljr,逆时针(eclipse),la clojure( intellij),或netbeans。