I'm sure more information will be needed but I've suddenly started getting this error when trying to run cider-jack-in in emacs:
[nREPL] Starting server via /home/person/.guix-home/profile/bin/clojure -Sdeps \{\:deps\ \{nrepl/nrepl\ \{\:mvn/version\ \"1.3.1\"\}\ cider/cider-nrepl\ \{\:mvn/version\ \"0.55.7\"\}\ refactor-nrepl/refactor-nrepl\ \{\:mvn/version\ \"3.10.0\"\}\}\ \:aliases\ \{\:cider/nrepl\ \{\:main-opts\ \[\"-m\"\ \"nrepl.cmdline\"\ \"--middleware\"\ \"\[refactor-nrepl.middleware/wrap-refactor\,cider.nrepl/cider-middleware\]\"\]\}\}\} -M:cider/nrepl
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (REPL:-1).
com.sun.source.doctree.BlockTagTree
Full report at:
/tmp/clojure-13021721334404602078.edn
("exited abnormally with code 1")
error in process sentinel: Could not start nREPL server: Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (REPL:-1).
com.sun.source.doctree.BlockTagTree
Full report at:
/tmp/clojure-13021721334404602078.edn
("exited abnormally with code 1")
Unsurprisingly, the same issue when I've tried to launch it directly from the CLI:
person@blep ~$ clojure -Sdeps '{:deps {nrepl {:mvn/version "1.3.1"} cider/cider-nrepl {:mvn/version "0.55.7"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]'
WARNING: Implicit use of clojure.main with options is deprecated, use -M
Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (REPL:-1).
com.sun.source.doctree.BlockTagTree
Full report at:
/tmp/clojure-5241116782966707673.edn
person@blep ~$ clojure --version
Clojure CLI version 1.11.1.1413
person@blep ~$ java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+-adhoc.nixbld.source)
OpenJDK 64-Bit Server VM (build 21.0.2+-adhoc.nixbld.source, mixed mode, sharing)
Will post some more details in the threadI'm not sure what changed because I've been doing this for weeks and just now am seeing this error.
{:clojure.main/message
"Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (REPL:-1).\ncom.sun.source.doctree.BlockTagTree\n",
:clojure.main/triage
{:clojure.error/class java.lang.ClassNotFoundException,
:clojure.error/line -1,
:clojure.error/cause "com.sun.source.doctree.BlockTagTree",
:clojure.error/symbol java.net.URLClassLoader/findClass,
:clojure.error/phase :execution},
:clojure.main/trace
{:via
[{:type clojure.lang.Compiler$CompilerException,
:message
"Syntax error macroexpanding at (orchard/java/parser_next.clj:1:1).",
:data
{:clojure.error/phase :execution,
:clojure.error/line 1,
:clojure.error/column 1,
:clojure.error/source "orchard/java/parser_next.clj"},
:at [clojure.lang.Compiler load "Compiler.java" 7665]}
{:type java.lang.ClassNotFoundException,
:message "com.sun.source.doctree.BlockTagTree",
:at [java.net.URLClassLoader findClass nil -1]}],
:trace
[[java.net.URLClassLoader findClass nil -1]
[clojure.lang.DynamicClassLoader
findClass
"DynamicClassLoader.java"
69]
[java.lang.ClassLoader loadClass nil -1]
[clojure.lang.DynamicClassLoader
loadClass
"DynamicClassLoader.java"
77]
[java.lang.ClassLoader loadClass nil -1]
[java.lang.Class forName0 nil -2]
[java.lang.Class forName nil -1]
[java.lang.Class forName nil -1]
[clojure.lang.RT classForName "RT.java" 2209]
[clojure.lang.RT classForNameNonLoading "RT.java" 2222]
[orchard.java.parser_next$eval4379$loading__6789__auto____4380
invoke
"parser_next.clj"
1]
[orchard.java.parser_next$eval4379 invokeStatic "parser_next.clj" 1]
[orchard.java.parser_next$eval4379 invoke "parser_next.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 7194]
[clojure.lang.Compiler eval "Compiler.java" 7183]
[clojure.lang.Compiler load "Compiler.java" 7653]
[clojure.lang.RT loadResourceScript "RT.java" 381]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT load "RT.java" 459]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6908 invoke "core.clj" 6161]
[clojure.core$load invokeStatic "core.clj" 6160]
[clojure.core$load doInvoke "core.clj" 6144]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5933]
[clojure.core$load_one invoke "core.clj" 5928]
[clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
[clojure.core$load_lib invokeStatic "core.clj" 5974]
[clojure.core$load_lib doInvoke "core.clj" 5953]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 6016]
[clojure.core$load_libs doInvoke "core.clj" 6000]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 6038]
[clojure.core$require doInvoke "core.clj" 6038]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 667]
[clojure.core$serialized_require invokeStatic "core.clj" 6114]
[clojure.core$requiring_resolve invokeStatic "core.clj" 6123]
[clojure.core$requiring_resolve invoke "core.clj" 6117]
[clojure.lang.AFn applyToHelper "AFn.java" 154]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.lang.Compiler$InvokeExpr eval "Compiler.java" 3714]
[clojure.lang.Compiler$BodyExpr eval "Compiler.java" 6151]
[clojure.lang.Compiler$IfExpr eval "Compiler.java" 2741]
[clojure.lang.Compiler$DefExpr eval "Compiler.java" 457]
[clojure.lang.Compiler eval "Compiler.java" 7199]
[clojure.lang.Compiler load "Compiler.java" 7653]
[clojure.lang.RT loadResourceScript "RT.java" 381]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT load "RT.java" 459]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6908 invoke "core.clj" 6161]
[clojure.core$load invokeStatic "core.clj" 6160]
[clojure.core$load doInvoke "core.clj" 6144]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5933]
[clojure.core$load_one invoke "core.clj" 5928]
[clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
[clojure.core$load_lib invokeStatic "core.clj" 5974]
[clojure.core$load_lib doInvoke "core.clj" 5953]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 6016]
[clojure.core$load_libs doInvoke "core.clj" 6000]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 6038]
[clojure.core$require doInvoke "core.clj" 6038]
[clojure.lang.RestFn invoke "RestFn.java" 551]
[$eval3822$loading__6789__auto____3823
invoke
"info.clj"
1]
[$eval3822 invokeStatic "info.clj" 1]
[$eval3822 invoke "info.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 7194]
[clojure.lang.Compiler eval "Compiler.java" 7183]
[clojure.lang.Compiler load "Compiler.java" 7653]
[clojure.lang.RT loadResourceScript "RT.java" 381]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT load "RT.java" 459]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6908 invoke "core.clj" 6161]
[clojure.core$load invokeStatic "core.clj" 6160]
[clojure.core$load doInvoke "core.clj" 6144]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5933]
[clojure.core$load_one invoke "core.clj" 5928]
[clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
[clojure.core$load_lib invokeStatic "core.clj" 5974]
[clojure.core$load_lib doInvoke "core.clj" 5953]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 6016]
[clojure.core$load_libs doInvoke "core.clj" 6000]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 6038]
[clojure.core$require doInvoke "core.clj" 6038]
[clojure.lang.RestFn invoke "RestFn.java" 1523]
[cider.nrepl$eval2502$loading__6789__auto____2503
invoke
"nrepl.clj"
1]
[cider.nrepl$eval2502 invokeStatic "nrepl.clj" 1]
[cider.nrepl$eval2502 invoke "nrepl.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 7194]
[clojure.lang.Compiler eval "Compiler.java" 7183]
[clojure.lang.Compiler load "Compiler.java" 7653]
[clojure.lang.RT loadResourceScript "RT.java" 381]
[clojure.lang.RT loadResourceScript "RT.java" 372]
[clojure.lang.RT load "RT.java" 459]
[clojure.lang.RT load "RT.java" 424]
[clojure.core$load$fn__6908 invoke "core.clj" 6161]
[clojure.core$load invokeStatic "core.clj" 6160]
[clojure.core$load doInvoke "core.clj" 6144]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invokeStatic "core.clj" 5933]
[clojure.core$load_one invoke "core.clj" 5928]
[clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
[clojure.core$load_lib invokeStatic "core.clj" 5974]
[clojure.core$load_lib doInvoke "core.clj" 5953]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$load_libs invokeStatic "core.clj" 6016]
[clojure.core$load_libs doInvoke "core.clj" 6000]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invokeStatic "core.clj" 669]
[clojure.core$require invokeStatic "core.clj" 6038]
[clojure.core$require doInvoke "core.clj" 6038]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[nrepl.cmdline$require_and_resolve invokeStatic "cmdline.clj" 237]
[nrepl.cmdline$require_and_resolve invoke "cmdline.clj" 228]
[nrepl.cmdline$fn__2430 invokeStatic "cmdline.clj" 242]
[nrepl.cmdline$fn__2430 invoke "cmdline.clj" 242]
[clojure.core$map$fn__5931$fn__5932 invoke "core.clj" 2759]
[clojure.core$map$fn__5931$fn__5932 invoke "core.clj" 2759]
[clojure.lang.PersistentVector reduce "PersistentVector.java" 343]
[clojure.core$transduce invokeStatic "core.clj" 6946]
[clojure.core$into invokeStatic "core.clj" 6962]
[clojure.core$into invoke "core.clj" 6950]
[nrepl.cmdline$__GT_mw_list invokeStatic "cmdline.clj" 269]
[nrepl.cmdline$__GT_mw_list invoke "cmdline.clj" 267]
[nrepl.cmdline$build_handler invokeStatic "cmdline.clj" 278]
[nrepl.cmdline$build_handler invoke "cmdline.clj" 271]
[nrepl.cmdline$options__GT_handler invokeStatic "cmdline.clj" 347]
[nrepl.cmdline$options__GT_handler invoke "cmdline.clj" 338]
[nrepl.cmdline$server_opts invokeStatic "cmdline.clj" 401]
[nrepl.cmdline$server_opts invoke "cmdline.clj" 386]
[nrepl.cmdline$dispatch_commands invokeStatic "cmdline.clj" 504]
[nrepl.cmdline$dispatch_commands invoke "cmdline.clj" 497]
[nrepl.cmdline$_main invokeStatic "cmdline.clj" 520]
[nrepl.cmdline$_main doInvoke "cmdline.clj" 515]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.lang.Var applyTo "Var.java" 705]
[clojure.core$apply invokeStatic "core.clj" 667]
[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]],
:cause "com.sun.source.doctree.BlockTagTree",
:phase :execution}} Do you have any other JDKs installed on your machine? Can you try with a different JDK?
Will try and report back
Thank you! JDK 21 should be totally suitable, of course, but maybe something happened to this particular installation.
It's guix, so I'm sure it's a /me/ issue
Try running the same command but without the -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]' part and check what JDK version is used within the Clojure process once it starts
┌─[person@blep]──[12:27]──[/home/person]──[🤚]
└─> $ ps aux | grep java
(standard input):391:person 4239 31.5 0.5 20309568 317944 pts/0 Sl+ 12:27 0:05 /home/person/.guix-home/profile/bin/java -XX:-OmitStackTraceInFastThrow -Dclojure.basis=/home/person/.cache/clojure/2692967175.basis -classpath src:/home/person/.m2/repositor
(standard input):392:person 4318 0.0 0.0 6656 2504 pts/1 Ss+ 12:27 0:00 /run/current-system/profile/bin/grep -n -H java
┌─[person@blep]──[12:27]──[/home/person]──[🤚]
└─> $ which java
/home/person/.guix-home/profile/bin/java
┌─[person@blep]──[12:28]──[/home/person]──[🤚]
└─> $ /home/person/.guix-home/profile/bin/java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+-adhoc.nixbld.source)
OpenJDK 64-Bit Server VM (build 21.0.2+-adhoc.nixbld.source, mixed mode, sharing)Is that the info you were looking for here?
I see that when you run java --version , it gets the (hopefully) correct JDK21. But I wonder if it the same when you launch clojure
Just try launching clojure for a regular REPL, and run (System/getProperty "java.home") inside
person@blep ~ [env]$ clojure -Sdeps '{:deps {nrepl {:mvn/version "1.3.1"} cider/cider-nrepl {:mvn/version "0.55.7"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]'
WARNING: Implicit use of clojure.main with options is deprecated, use -M
Execution error (ClassNotFoundException) at java.net.URLClassLoader/findClass (REPL:-1).
com.sun.source.doctree.BlockTagTree
Full report at:
/tmp/clojure-1405976651484813861.edn
person@blep ~ [env]$ java --version
openjdk 24.0.1 2025-04-15
OpenJDK Runtime Environment (build 24.0.1+-adhoc.nixbld.source)
OpenJDK 64-Bit Server VM (build 24.0.1+-adhoc.nixbld.source, mixed mode, sharing)
Same issue @24user=> (System/getProperty "java.home")
"/gnu/store/iqcylpkjyfx7b2m7sz08218ifvd6klvd-openjdk-24.0.1"How do you obtain the JDK with Guix? Does it install some proper verified package? I'm a bit suspicious of this adhoc.nixbld.source part
Background: this class com.sun.source.doctree.BlockTagTree should be present in most JDK installations, but is probably missing in JREs. So it looks a bit like you don't have a complete JDK installed. That doesn't explain why it worked before though.
Ah, that might be enough for me to go on. I thought this was having an issue fetching a dependency didn't realize it was built in.
> Does it install some proper verified package Either built it locally or pulled a build from gnu repos
Probably is not being built correctly after an update
Let me try get a prebuilt one and try again
Works fine with a different jdk. Thanks for the help 🙂
Good to know! Thanks for working through this. CIDER used to not fail completely on JRE but I've broken it; I will restore the compatibility.
For future travelers- thanks again for the help