gpt4 book ai didi

windows - Leiningen 无法使用新生成的项目

转载 作者:可可西里 更新时间:2023-11-01 09:59:07 27 4
gpt4 key购买 nike

我在 Windows 上运行 Leiningen 时遇到问题(在 Cygwin 和 CMD 中)。

最初我生成项目时:

$ lein new app leintest
Generating a project called leintest based on the 'app' template.

然后我尝试运行它:

$ cd leintest/
$ lein run
$

没有显示结果。 -main 函数有 println:

$ cat src/leintest/core.clj
(ns leintest.core
(:gen-class))

(defn -main
"I don't do a whole lot ... yet."
[& args]
(println "Hello, World!"))

它被project.clj指向:

$ cat project.clj
(defproject leintest "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.6.0"]]
:main ^:skip-aot leintest.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all}})

所以基本上我无法运行模板项目。更重要的是我也无法构建 uberjar:

$ lein uberjar
Warning: The Main-Class specified does not exist within the jar. It may not be executable as expected. A gen-class directive may be missing in the namespace which contains the main method.
Created E:\Workspaces\leintest\target\uberjar\leintest-0.1.0-SNAPSHOT.jar
Created E:\Workspaces\leintest\target\uberjar\leintest-0.1.0-SNAPSHOT-standalone.jar

据我所知,它甚至找不到主类。当我尝试使用 repl 进行调试时,我了解到 REPL 服务器启动超时。

我的 Leningen 版本是 Leiningen 2.4.3 on Java 1.7.0_51 Java HotSpot(TM) 64-Bit Server VM。无论我使用 lein 脚本 (Cygwin) 还是 lein.bat (CMD),我都会看到相同的行为。

我该怎么做才能找出问题所在?

最佳答案

问题是由 JAVA_PATH 系统变量引起的。

我有 2 个 Java 安装 - 标准的和便携的。标准之一将自身添加到 PATH 变量中,以便 java 将执行 C:\Program Files\Java\jre7\bin\java.exe

在 Cygwin 中,我添加了指向可移植安装的 JAVA_PATH 并将其目录添加到路径中 (SET PATH=%PATH%;%JAVA_PATH%\bin)。但是,由于该目录出现在非可移植安装添加的目录之后,因此被忽略了。 JAVA_PATH 变量与 PATH 中的目录不匹配导致 lein 脚本调用失败。同时在 CMD 中我根本没有设置 JAVA_PATH

当我确保 JAVA_PATH 设置正确并在标准安装之前将其添加到 PATH (SET PATH=%JAVA_PATH%\bin; PATH) 一切开始工作。

关于windows - Leiningen 无法使用新生成的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25259295/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com