Leiningen无法在WinXP机器上启动REPL



我使用的是带有clojure-1.5.1leiningen-2.3.4和Java1.7.0_45 jdk的WinXP(sp3)机器。我使用leiningen创建一个新项目、启动clojure shell或创建和运行java程序都没有问题。但是,以下命令(请参阅下文)会导致显示错误消息。除了创建指向leiningen.jar文件位置的新用户和系统环境变量LEIN_JAR之外,我还将clojure-1.5.1leiningen-2.3.4-standalone.jars添加到用户和系统路径变量中。用户和系统变量的类路径也已按上述方式进行了编辑。我的lein.batLEIN_JAR设置的位置周围没有遗漏任何双引号,因为另一位发帖者在帮助Clojure的另一位初始用户时表示。任何建设性的帮助都将不胜感激。

我的project.clj文件:

(defproject test10 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]])

编辑2:lein版本命令输出

C:>lein version

Leiningen 2.3.4 on Java 1.7.0_45 Java HotSpot(TM)客户端VM

C:>lein repl
Error: Could not find or load main class  -Dfile.encoding=UTF-8
Exception in thread "Thread-4" clojure.lang.ExceptionInfo: Subprocess failed {:e
xit-code 1}
at clojure.core$ex_info.invoke(core.clj:4327)
at leiningen.core.eval$fn__3532.invoke(eval.clj:226)
at clojure.lang.MultiFn.invoke(MultiFn.java:231)
at leiningen.core.eval$eval_in_project.invoke(eval.clj:326)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:619)
at leiningen.repl$server$fn__7443.invoke(repl.clj:201)
at clojure.lang.AFn.applyToHelper(AFn.java:159)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1788)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invoke(core.clj:621)
at clojure.core$bound_fn_STAR_$fn__4102.doInvoke(core.clj:1810)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:744)
REPL server launch timed out.
C:>

感谢您的回复。lein版本的输出看起来不错。抱歉收到长消息:)

以下是我进一步解决问题的方法。请确保您正在检查Windows维护的系统日志。相关消息可以路由到系统日志,而不会显示在控制台中。

到目前为止,leinegen似乎可以执行它的一些命令,但不是所有命令。如果您执行"lein-help",您将获得可用命令的列表。

我的第一个想法是,leinegen在"lein-repl"默认值方面遇到了问题。因此,与其让leinegen为主机和端口选择默认值,不如在命令行中明确设置它们。例如:"lein-repl:start:host localhost:port 5554"或"lein-epl:start:host127.0.0.1:port 5554"。

我会切换到您的"example"目录,并验证"lein-deps"、"lein-check"one_answers"lein-compile"是否都运行无错误。

最后,我将编辑示例项目。在project.clj中添加以下行(位于:dependencies子句之后)

:主要示例.core

这一行告诉莱因根"示例"程序的入口点是什么

接下来,我们需要编辑"src/example/core.clj"文件。删除内容并替换为以下"你好词":

(ns example.core)

(defn-main[&args](println"你好,世界!")

现在,从示例项目(C:\>example)的根目录运行"lein-run"。请公布结果。如果"lein-run"成功,请从示例项目的根目录再尝试一次"lein-repl"。

再说一遍。请确保检查窗口日志中的消息。从示例项目的根运行"lein-deps"、"lein-check"one_answers"lein-compile"也可能有所帮助。查看是否出现了更有用的错误。

对不起,我不使用MS Windows。不过,我有几个建议。

你说你可以和莱宁根一起创建一个新项目。您在哪个磁盘/目录中创建了该项目?

根据您的帖子,看起来您正在从"c:"驱动器的根磁盘目录中发出"lein-repl"命令。那是你创建项目的地方吗?

如果您更改到不同的磁盘/目录,是否会收到相同的错误消息?

也许leiningen正在挑选一些无法在根目录中解析的工件(例如C:/>)。因此,请检查是否可以从不同的磁盘目录运行"lein-repl"。

如果您只是在从项目目录的根目录运行"lein-repl"时遇到错误,请发布有关该项目的一些信息(例如,您的project.clj文件的内容)。

希望能有所帮助。

  1. 检查以确保lein不在路径中有任何空格或大写字符的目录中。

  2. 确保JDK在一个没有空格或大写字符的目录中。

  3. 确保JAVA_HOME设置为

  4. 确保java在SYSTEM路径中

最新更新