升级Leiningen(从v1.6升级到v1.7),lein upgrade
命令lein swank
停止使用错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
[...]
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: . Program will exit.
由于我是从命令行尝试过的,我相信在这种情况下Emacs配置并不重要。所以我试图完全重新安装Leiningen。我做了什么(使用来自here的建议和错误消息):
rm -R ~/.m2
# rm ~/.lein/plugins/*
lein self-install
(我只在第二次重新安装时使用了第二行,因此为了完整起见,这里是
然后我创建了新项目并安装了lein-swank插件,因为据我所知,目前是推荐的方式:
lein new test-project
lein plugin install swank-clojure 1.4.0 # I tried earlier version (1.3.2) too
最后,lein swank:
cd test-project
lein swank
但是得到了和以前一样的错误。
所以我的问题是:
UPD。以下是使用新项目生成的project.clj
:
(defproject test-project "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]])
答案 0 :(得分:1)
swank-clojure troubleshooting page是否有帮助:
疑难解答
目前有多个版本的swank-clojure 运行lein swank或lein时类路径可能会导致问题 杰克项。建议不要把swank-clojure放进你的 :dev-dependencies但运行lein plugin install以安装它 而是全球所有项目。这也意味着人们黑客入侵 如果他们不是Emacs用户,你的项目就不必将其拉入。
某些软件包也可以提供旧版本的软件 传递的是swank-clojure,所以如果你是的话,请检查lib /目录 有问题。特别是,Incanter已经证明了这一点 问题。明智地使用:排除使其有效:
:dependencies [[incanter "1.2.3" :exclusions [swank-clojure]]]
自swank-clojure 1.3.4以来,clj-stacktrace版本较旧 您的项目或用户级插件中的0.2.1将导致无法使用 解析符号:pst-elem-str错误。请记住,用户级别 〜/ .lein / plugins中的插件是Leiningen 1.x中的uberjars,所以它就是 可能是你的一个插件(比如之前的lein-difftest) 版本1.3.7)包含旧的clj-stacktrace,即使它没有 它自己的文件。如果是,则指定较新的版本就足够了 你遇到了麻烦:
:dependencies [[clj-stacktrace "0.2.4"]]