代码之家  ›  专栏  ›  技术社区  ›  Zeynel

Cryptic Clojure错误:java.lang.UnsupportedOperationException:此类型不支持第n个:Symbol

  •  0
  • Zeynel  · 技术社区  · 11 年前

    我正在努力让莱宁根工作。我正在使用Windows 7。当我在命令窗口中运行时

    C:\lein new app my-app
    

    我得到以下错误。有人知道这意味着什么吗?错误发生在哪里?

    有对错误消息的解释 here 但我不知道是否有修复或是什么原因导致了错误。

    C:\Users\a\work>lein new app my-app
    java.lang.UnsupportedOperationException: nth not supported on this type: Symbol
            at clojure.lang.RT.nthFrom(RT.java:857)
            at clojure.lang.RT.nth(RT.java:807)
            at leiningen.core.project$dep_key.invoke(project.clj:175)
            at leiningen.core.project$reduce_dep_step.invoke(project.clj:183)
            at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58)
            at clojure.core.protocols$fn__6041.invoke(protocols.clj:98)
            at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19
    )
            at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
            at clojure.core.protocols$fn__6024.invoke(protocols.clj:60)
            at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13
    )
            at clojure.core$reduce.invoke(core.clj:6177)
            at leiningen.core.project$meta_merge.invoke(project.clj:391)
            at clojure.core$merge_with$merge_entry__4279.invoke(core.clj:2698)
            at clojure.core$reduce1.invoke(core.clj:896)
            at clojure.core$merge_with$merge2__4281.invoke(core.clj:2701)
            at clojure.core$reduce1.invoke(core.clj:896)
            at clojure.core$reduce1.invoke(core.clj:887)
            at clojure.core$merge_with.doInvoke(core.clj:2702)
            at clojure.lang.RestFn.invoke(RestFn.java:439)
            at leiningen.core.project$meta_merge.invoke(project.clj:395)
            at leiningen.core.project$apply_profiles$fn__1009.invoke(project.clj:417
    )
            at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58)
            at clojure.core.protocols$fn__6041.invoke(protocols.clj:98)
            at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19
    )
            at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
            at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
            at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13
    )
            at clojure.core$reduce.invoke(core.clj:6177)
            at leiningen.core.project$apply_profiles.invoke(project.clj:415)
            at leiningen.core.project$init_profiles.doInvoke(project.clj:603)
            at clojure.lang.RestFn.invoke(RestFn.java:425)
            at leiningen.core.main$_main$fn__1332.invoke(main.clj:257)
            at leiningen.core.main$_main.doInvoke(main.clj:252)
            at clojure.lang.RestFn.invoke(RestFn.java:436)
            at clojure.lang.Var.invoke(Var.java:423)
            at clojure.lang.AFn.applyToHelper(AFn.java:167)
            at clojure.lang.Var.applyTo(Var.java:532)
            at clojure.core$apply.invoke(core.clj:617)
            at clojure.main$main_opt.invoke(main.clj:335)
            at clojure.main$main.doInvoke(main.clj:440)
            at clojure.lang.RestFn.invoke(RestFn.java:482)
            at clojure.lang.Var.invoke(Var.java:431)
            at clojure.lang.AFn.applyToHelper(AFn.java:178)
            at clojure.lang.Var.applyTo(Var.java:532)
            at clojure.main.main(main.java:37)
    C:\Users\a\work
    
    2 回复  |  直到 11 年前
        1
  •  2
  •   Rörd    11 年前

    根据要求,以下是我的评论转化为回答。我建议重新安装Leiningen,因为问题的根源显然是一个损坏的Leiningen安装。

    作为一个小小的背景解释,我在Linux和Windows上都使用Leiningen,我自己也有过安装Leiningen的主要方法推荐的经验 its homepage 这个 lein 分别。 lein.bat 脚本,只是有效,而替代方案 安装方法(Linux软件包管理器、Windows安装程序)通常会产生损坏的安装。

        2
  •  1
  •   Simon Brooke    10 年前

    我认为这基本上不太可能是莱宁根错误,因为我可以在没有莱宁根参与的情况下复制它:

    用户=>(let[[foo bar]:froboz](列出foo bar))

    不支持此类型的OperationException nth不支持:关键字clojure.lang.RT.nthhFrom(RT.java:857)