<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions in CIDER</title>
<link>https://ask.clojure.org/index.php/questions/tools/cider</link>
<description></description>
<item>
<title>how do you set  -Djdk.attach.allowAttachSelf enabled so that I can interrupt a cider repl in emacs</title>
<link>https://ask.clojure.org/index.php/14697/attach-allowattachself-enabled-interrupt-cider-repl-emacs</link>
<description>&lt;p&gt;In a long running process I want to interrupt the repl.&lt;br&gt;
if you set deps.edn with the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:aliases {:dev {:jvm-opts [&quot;-Djdk.attach.allowAttachSelf enabled&quot;
                            &quot;-XX:+PreserveFramePointer&quot;
                            &quot;-XX:+UnlockDiagnosticVMOptions&quot;
                            &quot;-XX:+DebugNonSafepoints&quot;]}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and then in init.el:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(setq cider-clojure-cli-global-options &quot;-Adev&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;you can avoid the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ERROR: Cannot stop thread on JDK21+ without -Djdk.attach.allowAttachSelf 
enabled, see https://nrepl.org/nrepl/installation.html#jvmti.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;but the java process still continues&lt;/p&gt;
</description>
<category>CIDER</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/14697/attach-allowattachself-enabled-interrupt-cider-repl-emacs</guid>
<pubDate>Tue, 02 Sep 2025 15:56:27 +0000</pubDate>
</item>
<item>
<title>Unable to locate a Java Runtime</title>
<link>https://ask.clojure.org/index.php/13107/unable-to-locate-a-java-runtime</link>
<description>&lt;p&gt;I try to learn Clojure and follow Clojure for the Brave and True book.&lt;/p&gt;
&lt;p&gt;In &lt;code&gt;core.clj&lt;/code&gt; file, I typed &lt;code&gt;M-x cider-jack-in&lt;/code&gt; command. I see following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;error in process sentinel: Could not start nREPL server: The operation couldn’t be completed. Unable to locate a Java Runtime.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I tried both 8 and 17 versions of Java, I verified them via &lt;code&gt;which java&lt;/code&gt; and &lt;code&gt;echo $JAVA_HOME&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;&lt;code&gt;Lein&lt;/code&gt; commands works by themselves.&lt;/p&gt;
&lt;p&gt;Can you help me?&lt;/p&gt;
</description>
<category>CIDER</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13107/unable-to-locate-a-java-runtime</guid>
<pubDate>Sat, 29 Jul 2023 18:13:11 +0000</pubDate>
</item>
<item>
<title>cider repl error ClassNotFoundException: jdk.javadoc.doclet.Doclet</title>
<link>https://ask.clojure.org/index.php/12541/cider-error-classnotfoundexception-javadoc-doclet-doclet</link>
<description>&lt;p&gt;Hello Everyone,&lt;/p&gt;
&lt;p&gt;I have started learning clojure. Using the book &quot;clojure for the brave and true&quot;.&lt;br&gt;
I am trying to get the first code running using emacs, cider. &lt;/p&gt;
&lt;p&gt;Whenever I run&lt;br&gt;
M-x cider-jack-in &lt;/p&gt;
&lt;p&gt;to start the repl. It starts then I get a very long error stack trace.&lt;br&gt;
From the analysis I have done. It appers the error is caused&lt;/p&gt;
&lt;p&gt;by Caused by: java.lang.ClassNotFoundException: jdk.javadoc.doclet.Doclet&lt;/p&gt;
&lt;p&gt;I am using&lt;br&gt;
jdk 11.0.14&lt;br&gt;
clojure 1.11.1&lt;br&gt;
cider 1.6.0&lt;/p&gt;
&lt;p&gt;Find below the stack trace&lt;/p&gt;
&lt;p&gt;;;  Startup: &quot;c:/Users/nyemi/Documents/clojure/lein.bat&quot; update-in :dependencies conj ^&quot;[nrepl/nrepl \^&quot;1.0.0\^&quot;]^&quot; -- update-in :plugins conj ^&quot;[cider/cider-nrepl \^&quot;0.29.0\^&quot;]^&quot; -- repl :headless :host localhost&lt;br&gt;
ERROR: Unhandled REPL handler exception processing message {:op init-debugger, :nrepl.middleware.print/stream? 1, :nrepl.middleware.print/print cider.nrepl.pprint/pprint, :nrepl.middleware.print/quota 1048576, :nrepl.middleware.print/buffer-size 4096, :nrepl.middleware.print/options {:right-margin 70}, :session d8f7ce4f-e479-4c00-a8c3-2bc4f2bb3257, :id 6}&lt;br&gt;
Syntax error macroexpanding at (cider/nrepl/inlined/deps/orchard/v0v11v0/orchard/java/parser.clj:1:1).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;at clojure.lang.Compiler.load(Compiler.java:7665)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:459)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3714)
at clojure.lang.Compiler$BodyExpr.eval(Compiler.java:6151)
at clojure.lang.Compiler$IfExpr.eval(Compiler.java:2741)
at clojure.lang.Compiler$DefExpr.eval(Compiler.java:457)
at clojure.lang.Compiler.eval(Compiler.java:7199)
at clojure.lang.Compiler.load(Compiler.java:7653)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:459)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.invoke(RestFn.java:619)
at cider.nrepl.inlined.deps.orchard.v0v11v0.orchard.info$eval4201$loading__6789__auto____4202.invoke(info.clj:1)
at cider.nrepl.inlined.deps.orchard.v0v11v0.orchard.info$eval4201.invokeStatic(info.clj:1)
at cider.nrepl.inlined.deps.orchard.v0v11v0.orchard.info$eval4201.invoke(info.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7194)
at clojure.lang.Compiler.eval(Compiler.java:7183)
at clojure.lang.Compiler.load(Compiler.java:7653)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:459)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.invoke(RestFn.java:703)
at cider.nrepl.inlined.deps.haystack.v0v0v3.haystack.analyzer$eval2880$loading__6789__auto____2881.invoke(analyzer.clj:1)
at cider.nrepl.inlined.deps.haystack.v0v0v3.haystack.analyzer$eval2880.invokeStatic(analyzer.clj:1)
at cider.nrepl.inlined.deps.haystack.v0v0v3.haystack.analyzer$eval2880.invoke(analyzer.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7194)
at clojure.lang.Compiler.eval(Compiler.java:7183)
at clojure.lang.Compiler.load(Compiler.java:7653)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:459)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.invoke(RestFn.java:1289)
at cider.nrepl.middleware.debug$eval1742$loading__6789__auto____1743.invoke(debug.clj:1)
at cider.nrepl.middleware.debug$eval1742.invokeStatic(debug.clj:1)
at cider.nrepl.middleware.debug$eval1742.invoke(debug.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7194)
at clojure.lang.Compiler.eval(Compiler.java:7183)
at clojure.lang.Compiler.load(Compiler.java:7653)
at clojure.lang.RT.loadResourceScript(RT.java:381)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.load(RT.java:459)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at cider.nrepl$handler_future$fn__1130$fn__1131.invoke(nrepl.clj:53)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at cider.nrepl$handler_future$fn__1130.invoke(nrepl.clj:52)
at clojure.lang.Delay.deref(Delay.java:42)
at clojure.core$deref.invokeStatic(core.clj:2337)
at clojure.core$deref.invoke(core.clj:2323)
at cider.nrepl$wrap_debug$fn__1213.invoke(nrepl.clj:163)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_enlighten$fn__1221.invoke(nrepl.clj:190)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.load_file$wrap_load_file$fn__11240.invoke(load_file.clj:81)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_content_type$fn__1171.invoke(nrepl.clj:107)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.session$add_stdin$fn__10848.invoke(session.clj:379)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_inspect$fn__1247.invoke(nrepl.clj:227)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.caught$wrap_caught$fn__10673.invoke(caught.clj:97)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_profile$fn__1279.invoke(nrepl.clj:343)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.print$wrap_print$fn__10644.invoke(print.clj:234)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_undef$fn__1343.invoke(nrepl.clj:531)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at cider.nrepl$wrap_tracker$fn__1335.invoke(nrepl.clj:520)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.lookup$wrap_lookup$fn__11266.invoke(lookup.clj:52)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.middleware.session$session$fn__10835.invoke(session.clj:325)
at nrepl.middleware$wrap_conj_descriptor$fn__10438.invoke(middleware.clj:16)
at nrepl.server$default_handler$fn__11337.invoke(server.clj:141)
at nrepl.server$handle_STAR_.invokeStatic(server.clj:24)
at nrepl.server$handle_STAR_.invoke(server.clj:21)
at nrepl.server$handle$fn__11305.invoke(server.clj:41)
at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Caused by: java.lang.ClassNotFoundException: jdk.javadoc.doclet.Doclet&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69)

&lt;/code&gt;&lt;/pre&gt;
</description>
<category>CIDER</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12541/cider-error-classnotfoundexception-javadoc-doclet-doclet</guid>
<pubDate>Thu, 12 Jan 2023 16:06:35 +0000</pubDate>
</item>
<item>
<title>passing command line arguments to clojure via `cider-jack-in` (GNUEmacs 27.1, CIDER 1.2.0)</title>
<link>https://ask.clojure.org/index.php/12308/passing-command-arguments-clojure-cider-jack-gnuemacs-cider</link>
<description>&lt;p&gt;I want to do &lt;code&gt;cider-jack-in&lt;/code&gt; but I want to run with some predefined arguments passed to the &lt;code&gt;clojure&lt;/code&gt; executable.&lt;/p&gt;
&lt;p&gt;Each time I do a &lt;code&gt;cider-jack-in&lt;/code&gt;, I want to pick up my &lt;code&gt;:aliases {:dev {:extra-deps ...  :extra-paths ... }}&lt;/code&gt; as defined in my &lt;code&gt;deps.edn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Current workaround is to open an xterminal and type,&lt;br&gt;
&lt;code&gt;clj -A:dev&lt;/code&gt;&lt;br&gt;
Then from GNUEmacs do &lt;code&gt;cider-connect&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Since &lt;code&gt;clj&lt;/code&gt; is just wrapping rlwrap around /usr/bin/clojure, i understand I can run &lt;code&gt;clojure&lt;/code&gt; via CIDER, but what's the best way to get the argument, &lt;code&gt;-A:dev&lt;/code&gt;, passed in, too.&lt;/p&gt;
&lt;p&gt;I tried setq'ing various things to the GNUEmacs variable, &lt;code&gt;cider-clojure-cli-aliases&lt;/code&gt; without success.&lt;/p&gt;
&lt;p&gt;Versions I am using...&lt;/p&gt;
&lt;p&gt;CIDER 1.2.0 (Nice)&lt;/p&gt;
&lt;p&gt;GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)&lt;br&gt;
 of 2021-03-27, modified by Debian&lt;/p&gt;
</description>
<category>CIDER</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12308/passing-command-arguments-clojure-cider-jack-gnuemacs-cider</guid>
<pubDate>Wed, 12 Oct 2022 02:16:48 +0000</pubDate>
</item>
<item>
<title>With Emacs/Cider, what is the way to have local javadocs available?</title>
<link>https://ask.clojure.org/index.php/12117/with-emacs-cider-what-the-way-have-local-javadocs-available</link>
<description>&lt;p&gt;With Emacs/Cider, what is the way to have local javadocs available? I would already be happy if I had the &lt;em&gt;JDK&lt;/em&gt; javadocs.&lt;/p&gt;
&lt;p&gt;When I &quot;Press &amp;lt;C-c C-d C-d&amp;gt; to view the documentation for something (e.g. a var, a Java method)&quot;&lt;/p&gt;
&lt;p&gt;... with anything Java, I always get &quot;Not documented. For additional documentation, see the Javadoc. Definition location unavailable.&quot;&lt;/p&gt;
&lt;p&gt;I primarily use Windows and Java 18. But on Linux, I haven't seen it working either.&lt;/p&gt;
&lt;p&gt;Among other attempts, I tried:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(use-package cider
   :custom
   (cider-enrich-classpath t)
   (cider-jdk-src-paths '(&quot;c:/opt/zulu18.32.11-ca-jdk18.0.2-win_x64/lib/src.zip&quot;))
   ...)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is all more confusing than helping:&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.cider.mx/cider/usage/working_with_documentation.html#javadoc&quot;&gt;https://docs.cider.mx/cider/usage/working_with_documentation.html#javadoc&lt;/a&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure-emacs/enrich-classpath&quot;&gt;https://github.com/clojure-emacs/enrich-classpath&lt;/a&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/clojure-emacs/cider/issues/930&quot;&gt;https://github.com/clojure-emacs/cider/issues/930&lt;/a&gt;&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://bleepcoder.com/cider/315190809/cider-doesn-t-show-docs-for-java&quot;&gt;https://bleepcoder.com/cider/315190809/cider-doesn-t-show-docs-for-java&lt;/a&gt;&lt;/p&gt;
</description>
<category>CIDER</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12117/with-emacs-cider-what-the-way-have-local-javadocs-available</guid>
<pubDate>Wed, 17 Aug 2022 14:07:32 +0000</pubDate>
</item>
</channel>
</rss>