clojure/lein REPL with jline

vit*_*ang 6 clojure jline

出于某种原因,我无法使用jj的clojure REPL,我做的是git克隆github上的clojure存储库然后运行ant来构建它,然后我将jline-0.9.94.jar下载到clojure.jar的目录中,然后运行以下命令:

java -cp jline-0.9.94.jar:clojure.jar jline.ConsoleRunner clojure.main
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

    Exception in thread "main" java.lang.ClassNotFoundException: clojure.main
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:164)
 at jline.ConsoleRunner.main(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

以下是我当前目录中的文件:

vvshs-macbook-2:clojure vvsh$ ls
build.xml                                 clojure-sources-1.2.0-master-SNAPSHOT.jar epl-v10.html                              src
classes                                   clojure-sources.jar                       jline-0.9.94.jar                          test
clojure-1.2.0-master-SNAPSHOT.jar         clojure.iml                               pom-template.xml
clojure-slim-1.2.0-master-SNAPSHOT.jar    clojure.jar                               pom.xml
clojure-slim.jar                          doc                                       readme.txt
vvshs-macbook-2:clojure vvsh$ 
Run Code Online (Sandbox Code Playgroud)

我在clojure 1.1和lein repl上得到了同样的错误(似乎lein维护了自己的clojure版本).

顺便说一句,这是在mac ox 10.5.8

java version "1.5.0_24"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_24-b02-357-9M3165)
Java HotSpot(TM) Client VM (build 1.5.0_24-149, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

谁知道什么是错的以及如何解决它?因为我真的想让lein repl努力开始一个项目.

Pyr*_*ola 3

我今天解决了同样的问题,删除了多余的内容jline*.jar/Library/Java/Extensions只留下一个 jline 安装CLASSPATH

更长的解释:我试图构建labrepl,它将所有依赖项安装在 subdirectory 中lib,但我之前通过将 .jar 文件复制到 .jar 文件来设置 jline /Library/Java/Extensions显然java.lang.ClassLoader无法处理 jline 的两个安装,并且只要两个地方都有可用的 jline,启动 Clojure REPL 的命令行将无法找到类 和 的后一个jline.ConsoleRunnerclojure.main具体取决于它们给java命令的顺序。

我希望这有帮助。