我刚刚下载了Leiningen,但我无法运行它。下载自己的Jar存档后,脚本失败并出现java错误。通过运行bash -x lein
我可以看到它挂在这一行:
+ exec java -Xbootclasspath/a:/home/andrea/.m2/repository/org/clojure/clojure/1.2.1/clojure-1.2.1.jar -client -Dleiningen.original.pwd=/home/andrea/bin -cp /home/andrea/.clojure/clojure.jar:::::test/:src/:resources/:/home/andrea/.lein/self-installs/leiningen-1.6.2-standalone.jar clojure.main -e '(use '\''leiningen.core)(-main)' /dev/null
产生:
Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.<init>(ILclojure/lang/Keyword;)V
at clojure.lang.Util.runtimeException(Util.java:165)
at clojure.lang.Compiler.eval(Compiler.java:6476)
at clojure.lang.Compiler.eval(Compiler.java:6431)
at clojure.core$eval.invoke(core.clj:2795)
at clojure.main$eval_opt.invoke(main.clj:296)
有趣的是,失败的不是Java调用,而是片段'(use '\''leiningen.core)(-main)'
。没有它运行该行实际上是一个工作的clojure REPL。 leiningen-1.6.2-standalone.jar似乎走在了正确的道路上。有任何想法吗?我是Java和Clojure的新手......
答案 0 :(得分:2)
根据参考文献[1],您需要将Clojure主页添加到类路径中。
echo "export CLOJURE_HOME=$HOME/Opt/clojure
export CLASSPATH=$CLASSPATH:$CLOJURE_HOME" >> $HOME/.profile
答案 1 :(得分:1)
Chui Tey的回答指向了正确的方向。但是,如果您没有独立的Clojure安装,而是仅使用Leiningen来引导您的项目,则应该将Leiningen独立JAR添加到类路径中。
因此:
export CLASSPATH="$CLASSPATH:$HOME/.lein/self-installs/leiningen-VERSION-standalone.jar"