进程哨兵错误:无法启动 nREPL 服务器:java.lang.NumberFormatException:无效数字

error in process sentinel: Could not start nREPL server: java.lang.NumberFormatException: Invalid number

我查看了所有关于堆栈溢出的类似问题。这个不同,足以保证一个单独的问题。基本上,我无法启动 repl 服务器,因为出现以下错误。有人指出,这通常是一个依赖性问题,但据我所知,我已经更新了。我在这里弄错了什么?这是完整的错误:

error in process sentinel: Could not start nREPL server: java.lang.NumberFormatException: Invalid number: 0.8.3
 at clojure.lang.LispReader.readNumber (LispReader.java:352)
    clojure.lang.LispReader.read (LispReader.java:278)
    clojure.lang.LispReader.readDelimitedList (LispReader.java:1398)
    clojure.lang.LispReader$VectorReader.invoke (LispReader.java:1347)
    clojure.lang.LispReader.read (LispReader.java:285)
    clojure.lang.LispReader.read (LispReader.java:216)
    clojure.lang.LispReader.read (LispReader.java:205)
    clojure.lang.RT.readString (RT.java:1878)
    clojure.lang.RT.readString (RT.java:1873)
    clojure.core$read_string.invokeStatic (core.clj:3815)
    clojure.core$read_string.invoke (core.clj:3805)
    clojure.core$mapv$fn__8445.invoke (core.clj:6912)
    clojure.core.protocols$fn__8159.invokeStatic (protocols.clj:168)
    clojure.core.protocols/fn (protocols.clj:124)
    clojure.core.protocols$fn__8114$G__8109__8123.invoke (protocols.clj:19)
    clojure.core.protocols$seq_reduce.invokeStatic (protocols.clj:31)
    clojure.core.protocols$fn__8146.invokeStatic (protocols.clj:75)
    clojure.core.protocols/fn (protocols.clj:75)
    clojure.core.protocols$fn__8088$G__8083__8101.invoke (protocols.clj:13)
    clojure.core$reduce.invokeStatic (core.clj:6828)
    clojure.core$mapv.invokeStatic (core.clj:6903)
    clojure.core$mapv.invoke (core.clj:6903)
    leiningen.update_in$parse_args.invokeStatic (update_in.clj:13)
    leiningen.update_in$parse_args.invoke (update_in.clj:9)
    leiningen.update_in$update_in.invokeStatic (update_in.clj:36)
    leiningen.update_in$update_in.doInvoke (update_in.clj:24)
    clojure.lang.RestFn.applyTo (RestFn.java:146)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$partial_task$fn__7331.doInvoke (main.clj:284)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.lang.AFunction.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:660)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:343)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
    leiningen.core.main$_main$fn__7420.invoke (main.clj:453)
    leiningen.core.main$_main.invokeStatic (main.clj:442)
    leiningen.core.main$_main.doInvoke (main.clj:439)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:665)
    clojure.main$main_opt.invokeStatic (main.clj:514)
    clojure.main$main_opt.invoke (main.clj:510)
    clojure.main$main.invokeStatic (main.clj:664)
    clojure.main$main.doInvoke (main.clj:616)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.main.main (main.java:40)

编辑:

所以我在这个问题上走得更远了,我想我已经解决了最后一两个小问题。导致 java.lang.NumberFormatException 的文件是 cider.el,您可以在 emacs.emacs.d\elpa\cider-[版本号,在我的例子中是 20210104.915] 中找到它。您打开 cider.el 文件并在第 392/393 行,在此版本中,您会发现:

(cider-add-to-alist 'cider-jack-in-dependencies "nrepl/nrepl" "0.8.3")

所以改变这一行,重新编译它,并重新加载 emacs 得到的数字抛出 java.lang.NumberFormatException 改变成我改变它的任何东西(通过使用字节编译文件重新编译,点击回车,然后传递它文件的地址)。添加另一组双引号会导致各种空值错误(很明显),并且对异常和排序进行任何类型的反斜杠似乎都无法解决问题。因此,由于一些相关帖子(尽管细节少得多)似乎暗示要更改版本号,所以我将不得不假设我必须这样做。什么版本号在这里最有效?

到目前为止的临时解决方案:

在命令行中使用“lein repl”启动 repl,并使用连接命令“cider-connect”并指定本地主机手动连接到它(我在与项目相同的目录中启动了 repl,它很容易检测到它) .作为永久解决方案,这对我来说还不够好,但可以让我暂时起床并继续使用,直到找到更好的解决方案。

永久解决方案:

见下文

查看您的依赖项。我有一个问题,我的 java jdk 基本上坏了(就代码而言,java 的错,不是我的错)。我最终使用了最新的 OpenJDK(编号 15)。那奏效了。如果您遇到很多 java 特定类型错误,并且这些错误随着您使用的版本而变化,请考虑更新您的 java jdk。我之前用的是 LTE 版本,最新修复了它。