Windows 上的 Clojure、Leiningen 和 CLASSPATH

发布于 2024-12-26 19:32:59 字数 5166 浏览 4 评论 0原文

在 Windows 上安装 Leiningen 的正确方法是什么?我抓住了脚本并进行了自我安装。尝试运行lein new教程并收到此错误:

线程“main”java.lang.RuntimeException中的异常:java.io.FileNotFoundExcep 化:无法在类上找到 leiningen/core__init.class 或 leiningen/core.clj 小路: 在 clojure.lang.Util.runtimeException(Util.java:165) 在 clojure.lang.Compiler.eval(Compiler.java:6476) 在 clojure.lang.Compiler.eval(Compiler.java:6431) 在 clojure.core$eval.invoke(core.clj:2795) 在 clojure.main$eval_opt.invoke(main.clj:296) 在 clojure.main$initialize.invoke(main.clj:315) 在 clojure.main$script_opt.invoke(main.clj:339) 在 clojure.main$main.doInvoke(main.clj:426) 在 clojure.lang.RestFn.invoke(RestFn.java:482) 在 clojure.lang.Var.invoke(Var.java:417) 在 clojure.lang.AFn.applyToHelper(AFn.java:178) 在 clojure.lang.Var.applyTo(Var.java:518) 在 clojure.main.main(main.java:37) 原因:java.io.FileNotFoundException:无法找到 leiningen/core_init。 类路径上的 class 或 leiningen/core.clj: 在 clojure.lang.RT.load(RT.java:430) 在 clojure.lang.RT.load(RT.java:398) 在 clojure.core$load$fn_4610.invoke(core.clj:5386) 在 clojure.core$load.doInvoke(core.clj:5385) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 clojure.core$load_one.invoke(core.clj:5200) 在 clojure.core$load_lib.doInvoke(core.clj:5237) 在 clojure.lang.RestFn.applyTo(RestFn.java:142) 在 clojure.core$apply.invoke(core.clj:602) 在 clojure.core$load_libs.doInvoke(core.clj:5271) 在 clojure.lang.RestFn.applyTo(RestFn.java:137) 在 clojure.core$apply.invoke(core.clj:604) 在 clojure.core$use.doInvoke(core.clj:5363) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 user$eval1.invoke(NO_SOURCE_FILE:1) 在 clojure.lang.Compiler.eval(Compiler.java:6465) ... 11 更多

得到这个后,我将其添加到我的类路径中: C:\Users\Owner.lein\self-installs\leiningen-2.0.0-SNAPSHOT-standalone.jar 再次运行并得到同样的错误。我缺少什么?

更新 根据 @mtyaka 的建议使用 1.6.2 版本

现在我收到此错误:

线程“main”java.lang.RuntimeException 中的异常:java.lang.NoSuchMethodErr 或:clojure.lang.KeywordLookupSite.(ILclojure/lang/Keyword;)V 在 clojure.lang.Util.runtimeException(Util.java:165) 在 clojure.lang.Compiler.eval(Compiler.java:6476) 在 clojure.lang.Compiler.eval(Compiler.java:6431) 在 clojure.core$eval.invoke(core.clj:2795) 在 clojure.main$eval_opt.invoke(main.clj:296) 在 clojure.main$initialize.invoke(main.clj:315) 在 clojure.main$script_opt.invoke(main.clj:339) 在 clojure.main$main.doInvoke(main.clj:426) 在 clojure.lang.RestFn.invoke(RestFn.java:482) 在 clojure.lang.Var.invoke(Var.java:417) 在 clojure.lang.AFn.applyToHelper(AFn.java:178) 在 clojure.lang.Var.applyTo(Var.java:518) 在 clojure.main.main(main.java:37) 引起原因:java.lang.NoSuchMethodError:clojure.lang.KeywordLookupSite。(IL clojure/lang/关键字;)V 在 leiningen.util.paths$native_arch_path。(paths.clj:32) 在 leiningen.util.paths_init.load(来源未知) 在 leiningen.util.paths_init.(来源未知) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(来源未知) 在 clojure.lang.RT.loadClassForName(RT.java:2030) 在 clojure.lang.RT.load(RT.java:417) 在 clojure.lang.RT.load(RT.java:398) 在 clojure.core$load$fn__4610.invoke(core.clj:5386) 在 clojure.core$load.doInvoke(core.clj:5385) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 clojure.core$load_one.invoke(core.clj:5200) 在 clojure.core$load_lib.doInvoke(core.clj:5237) 在 clojure.lang.RestFn.applyTo(RestFn.java:142) 在 clojure.core$apply.invoke(core.clj:602) 在 clojure.core$load_libs.doInvoke(core.clj:5271) 在 clojure.lang.RestFn.applyTo(RestFn.java:137) 在 clojure.core$apply.invoke(core.clj:602) 在 clojure.core$require.doInvoke(core.clj:5352) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 leiningen.core$loading_4414_auto_.invoke(core.clj:1) 在 leiningen.core_init.load(来源未知) 在 leiningen.core_init.(来源未知) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(来源未知) 在 clojure.lang.RT.loadClassForName(RT.java:2030) 在 clojure.lang.RT.load(RT.java:417) 在 clojure.lang.RT.load(RT.java:398) 在 clojure.core$load$fn_4610.invoke(core.clj:5386) 在 clojure.core$load.doInvoke(core.clj:5385) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 clojure.core$load_one.invoke(core.clj:5200) 在 clojure.core$load_lib.doInvoke(core.clj:5237) 在 clojure.lang.RestFn.applyTo(RestFn.java:142) 在 clojure.core$apply.invoke(core.clj:602) 在 clojure.core$load_libs.doInvoke(core.clj:5271) 在 clojure.lang.RestFn.applyTo(RestFn.java:137) 在 clojure.core$apply.invoke(core.clj:604) 在 clojure.core$use.doInvoke(core.clj:5363) 在 clojure.lang.RestFn.invoke(RestFn.java:408) 在 user$eval1.invoke(NO_SOURCE_FILE:1) 在 clojure.lang.Compiler.eval(Compiler.java:6465) ... 11 更多

What is the correct way to install Leiningen on Windows? I grabbed the script and did the self install. Tried to run lein new tutorial and got this error:

Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundExcep
tion: Could not locate leiningen/core__init.class or leiningen/core.clj on class
path:
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)
at clojure.main$initialize.invoke(main.clj:315)
at clojure.main$script_opt.invoke(main.clj:339)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:482)
at clojure.lang.Var.invoke(Var.java:417)
at clojure.lang.AFn.applyToHelper(AFn.java:178)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate leiningen/core_init.
class or leiningen/core.clj on classpath:
at clojure.lang.RT.load(RT.java:430)
at clojure.lang.RT.load(RT.java:398)
at clojure.core$load$fn
_4610.invoke(core.clj:5386)
at clojure.core$load.doInvoke(core.clj:5385)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5200)
at clojure.core$load_lib.doInvoke(core.clj:5237)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$load_libs.doInvoke(core.clj:5271)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:604)
at clojure.core$use.doInvoke(core.clj:5363)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval1.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6465)
... 11 more

After getting this I added this to my class path:
C:\Users\Owner.lein\self-installs\leiningen-2.0.0-SNAPSHOT-standalone.jar
Ran again and got same error. What am I missing?

UPDATE
Went with 1.6.2 version based off suggestion from @mtyaka

Now I get this error:

Exception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodErr
or: clojure.lang.KeywordLookupSite.(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)
at clojure.main$initialize.invoke(main.clj:315)
at clojure.main$script_opt.invoke(main.clj:339)
at clojure.main$main.doInvoke(main.clj:426)
at clojure.lang.RestFn.invoke(RestFn.java:482)
at clojure.lang.Var.invoke(Var.java:417)
at clojure.lang.AFn.applyToHelper(AFn.java:178)
at clojure.lang.Var.applyTo(Var.java:518)
at clojure.main.main(main.java:37)
Caused by: java.lang.NoSuchMethodError: clojure.lang.KeywordLookupSite.(IL
clojure/lang/Keyword;)V
at leiningen.util.paths$native_arch_path.(paths.clj:32)
at leiningen.util.paths_init.load(Unknown Source)
at leiningen.util.paths
_init.(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.loadClassForName(RT.java:2030)
at clojure.lang.RT.load(RT.java:417)
at clojure.lang.RT.load(RT.java:398)
at clojure.core$load$fn__4610.invoke(core.clj:5386)
at clojure.core$load.doInvoke(core.clj:5385)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5200)
at clojure.core$load_lib.doInvoke(core.clj:5237)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$load_libs.doInvoke(core.clj:5271)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$require.doInvoke(core.clj:5352)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at leiningen.core$loading_4414_auto_.invoke(core.clj:1)
at leiningen.core
_init.load(Unknown Source)
at leiningen.core_init.(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at clojure.lang.RT.loadClassForName(RT.java:2030)
at clojure.lang.RT.load(RT.java:417)
at clojure.lang.RT.load(RT.java:398)
at clojure.core$load$fn
_4610.invoke(core.clj:5386)
at clojure.core$load.doInvoke(core.clj:5385)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5200)
at clojure.core$load_lib.doInvoke(core.clj:5237)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:602)
at clojure.core$load_libs.doInvoke(core.clj:5271)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:604)
at clojure.core$use.doInvoke(core.clj:5363)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval1.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:6465)
... 11 more

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

-残月青衣踏尘吟 2025-01-02 19:32:59

您似乎正在尝试安装 leiningen 2,该版本目前正处于开发阶段,尚未真正准备好。如果self-install 目前不起作用,尤其是在 Windows 上,我不会感到惊讶。

请尝试稳定版本的lein.bat(目前1.6.2)。

It looks like you are trying to install leiningen 2 which is currently in the middle of development and is not really ready yet. I wouldn't be surprised if self-install doesn't work at the moment, especially on Windows.

Please try the stable version of lein.bat (currently 1.6.2).

小苏打饼 2025-01-02 19:32:59

我只是想提请注意该解决方案,因为现在它可以在第一个答案的评论中找到。如果您在线程“main”java.lang.RuntimeException: java.lang.NoSuchMethodErr... 中收到 xception,则需要从类路径中删除 clojure jar 文件。

我使用的是 Leiningen 1.6.2 和 clojure-1.3.0,就像 brun 一样,所以不能确定其他版本是否也有同样的问题。

I just wanted to draw attention to the solution, since right now it is found in the comments to the first answer. If you are getting the xception in thread "main" java.lang.RuntimeException: java.lang.NoSuchMethodErr... you need to delete the clojure jar file from your classpath.

I was using Leiningen 1.6.2 and clojure-1.3.0, as was brun, so can't say for sure if other versions have the same problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文