进程哨兵错误:无法启动 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 版本,最新修复了它。
我查看了所有关于堆栈溢出的类似问题。这个不同,足以保证一个单独的问题。基本上,我无法启动 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 版本,最新修复了它。