Windows 上的 Clojure、Leiningen 和 CLASSPATH
在 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您似乎正在尝试安装 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).我只是想提请注意该解决方案,因为现在它可以在第一个答案的评论中找到。如果您在线程“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.