Error when running (cider.piggieback/cljs-repl (cljs.repl.nashorn/repl-env))
LukeDefeo opened this issue · 4 comments
Hello i am a bit of a noob at this but here goes:
i want to run a clojurescript repl and eval a few things in it from my editor.
i added this to my profiles.clj
:local {:dependencies [[cider/piggieback "0.3.6"]
[org.clojure/tools.nrepl "0.2.13"]]
:repl-options {:nrepl-middleware [cider.piggieback/wrap-cljs-repl]}}
and other relavent versions:
[org.clojure/clojure "1.9.0"]
[org.clojure/clojurescript "1.10.238"]
java version "1.8.0_162"
when i run
(cider.piggieback/cljs-repl (cljs.repl.nashorn/repl-env))
i get
java.lang.ClassNotFoundException: cljs.repl.nashorn
clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: cljs.repl.nashorn, compiling:(/private/var/folders/pq/yfcvn5850dg902pqt906399h0000gp/T/form-init7482810505273576285.clj:1:29)
Did you require the nashorn
namespace first?
Seemingly I have the same problem while I try to use Clojure CLI
Here is the info:
With deps.edn in empty folder and ~/.m2 being removed
deps.edn
{:deps {
org.clojure/clojure {:mvn/version "1.9.0"}
org.clojure/clojurescript {:mvn/version "1.10.339"}
org.clojure/tools.nrepl {:mvn/version "0.2.13"}
cider/piggieback {:mvn/version "0.3.6"}
}}
Java version
$ java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Start repl
$ clj
Downloading: org/clojure/clojure/1.9.0/clojure-1.9.0.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/clojurescript/1.10.339/clojurescript-1.10.339.pom from https://repo1.maven.org/maven2/
Downloading: org/sonatype/oss/oss-parent/7/oss-parent-7.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/tools.nrepl/0.2.13/tools.nrepl-0.2.13.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/pom.contrib/0.2.2/pom.contrib-0.2.2.pom from https://repo1.maven.org/maven2/
Downloading: cider/piggieback/0.3.6/piggieback-0.3.6.pom from https://repo.clojars.org/
Downloading: org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.pom from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-unshaded/v20180610/closure-compiler-unshaded-v20180610.pom from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-main/v20180610/closure-compiler-main-v20180610.pom from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-parent/v20180610/closure-compiler-parent-v20180610.pom from https://repo1.maven.org/maven2/
Downloading: org/sonatype/oss/oss-parent/9/oss-parent-9.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/google-closure-library/0.0-20170809-b9c14c6b/google-closure-library-0.0-20170809-b9c14c6b.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/data.json/0.2.6/data.json-0.2.6.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/pom.contrib/0.1.2/pom.contrib-0.1.2.pom from https://repo1.maven.org/maven2/
Downloading: org/mozilla/rhino/1.7R5/rhino-1.7R5.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/tools.reader/1.3.0-alpha3/tools.reader-1.3.0-alpha3.pom from https://repo1.maven.org/maven2/
Downloading: com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309.pom from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-externs/v20180610/closure-compiler-externs-v20180610.pom from https://repo1.maven.org/maven2/
Downloading: args4j/args4j/2.33/args4j-2.33.pom from https://repo1.maven.org/maven2/
Downloading: args4j/args4j-site/2.33/args4j-site-2.33.pom from https://repo1.maven.org/maven2/
Downloading: org/kohsuke/pom/14/pom-14.pom from https://repo1.maven.org/maven2/
Downloading: com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.pom from https://repo1.maven.org/maven2/
Downloading: com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom from https://repo1.maven.org/maven2/
Downloading: com/google/guava/guava/22.0/guava-22.0.pom from https://repo1.maven.org/maven2/
Downloading: com/google/guava/guava-parent/22.0/guava-parent-22.0.pom from https://repo1.maven.org/maven2/
Downloading: com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2.pom from https://repo1.maven.org/maven2/
Downloading: com/google/protobuf/protobuf-parent/3.0.2/protobuf-parent-3.0.2.pom from https://repo1.maven.org/maven2/
Downloading: com/google/google/1/google-1.pom from https://repo1.maven.org/maven2/
Downloading: com/google/code/gson/gson/2.7/gson-2.7.pom from https://repo1.maven.org/maven2/
Downloading: com/google/code/gson/gson-parent/2.7/gson-parent-2.7.pom from https://repo1.maven.org/maven2/
Downloading: com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.pom from https://repo1.maven.org/maven2/
Downloading: com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0.pom from https://repo1.maven.org/maven2/
Downloading: com/google/jsinterop/jsinterop/1.0.0/jsinterop-1.0.0.pom from https://repo1.maven.org/maven2/
Downloading: org/sonatype/oss/oss-parent/4/oss-parent-4.pom from https://repo1.maven.org/maven2/
Downloading: org/clojure/google-closure-library-third-party/0.0-20170809-b9c14c6b/google-closure-library-third-party-0.0-20170809-b9c14c6b.pom from https://repo1.maven.org/maven2/
Downloading: com/cognitect/transit-java/0.8.332/transit-java-0.8.332.pom from https://repo1.maven.org/maven2/
Downloading: com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom from https://repo1.maven.org/maven2/
Downloading: com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom from https://repo1.maven.org/maven2/
Downloading: org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.pom from https://repo1.maven.org/maven2/
Downloading: org/codehaus/mojo/animal-sniffer-parent/1.14/animal-sniffer-parent-1.14.pom from https://repo1.maven.org/maven2/
Downloading: org/codehaus/mojo/mojo-parent/34/mojo-parent-34.pom from https://repo1.maven.org/maven2/
Downloading: org/codehaus/codehaus-parent/4/codehaus-parent-4.pom from https://repo1.maven.org/maven2/
Downloading: com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7.pom from https://repo1.maven.org/maven2/
Downloading: com/fasterxml/jackson/jackson-parent/2.8/jackson-parent-2.8.pom from https://repo1.maven.org/maven2/
Downloading: com/fasterxml/oss-parent/27/oss-parent-27.pom from https://repo1.maven.org/maven2/
Downloading: org/msgpack/msgpack/0.6.12/msgpack-0.6.12.pom from https://repo1.maven.org/maven2/
Downloading: commons-codec/commons-codec/1.10/commons-codec-1.10.pom from https://repo1.maven.org/maven2/
Downloading: org/apache/commons/commons-parent/35/commons-parent-35.pom from https://repo1.maven.org/maven2/
Downloading: org/apache/apache/15/apache-15.pom from https://repo1.maven.org/maven2/
Downloading: com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.pom from https://repo1.maven.org/maven2/
Downloading: org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom from https://repo1.maven.org/maven2/
Downloading: com/cognitect/transit-java/0.8.332/transit-java-0.8.332.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/data.json/0.2.6/data.json-0.2.6.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/clojure/1.9.0/clojure-1.9.0.jar from https://repo1.maven.org/maven2/
Downloading: commons-codec/commons-codec/1.10/commons-codec-1.10.jar from https://repo1.maven.org/maven2/
Downloading: com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar from https://repo1.maven.org/maven2/
Downloading: org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar from https://repo1.maven.org/maven2/
Downloading: com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/google-closure-library/0.0-20170809-b9c14c6b/google-closure-library-0.0-20170809-b9c14c6b.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/clojurescript/1.10.339/clojurescript-1.10.339.jar from https://repo1.maven.org/maven2/
Downloading: com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0.jar from https://repo1.maven.org/maven2/
Downloading: com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7.jar from https://repo1.maven.org/maven2/
Downloading: org/mozilla/rhino/1.7R5/rhino-1.7R5.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/google-closure-library-third-party/0.0-20170809-b9c14c6b/google-closure-library-third-party-0.0-20170809-b9c14c6b.jar from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-externs/v20180610/closure-compiler-externs-v20180610.jar from https://repo1.maven.org/maven2/
Downloading: org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/tools.nrepl/0.2.13/tools.nrepl-0.2.13.jar from https://repo1.maven.org/maven2/
Downloading: com/google/guava/guava/22.0/guava-22.0.jar from https://repo1.maven.org/maven2/
Downloading: org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar from https://repo1.maven.org/maven2/
Downloading: com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar from https://repo1.maven.org/maven2/
Downloading: com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309.jar from https://repo1.maven.org/maven2/
Downloading: args4j/args4j/2.33/args4j-2.33.jar from https://repo1.maven.org/maven2/
Downloading: org/clojure/tools.reader/1.3.0-alpha3/tools.reader-1.3.0-alpha3.jar from https://repo1.maven.org/maven2/
Downloading: com/google/javascript/closure-compiler-unshaded/v20180610/closure-compiler-unshaded-v20180610.jar from https://repo1.maven.org/maven2/
Downloading: com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2.jar from https://repo1.maven.org/maven2/
Downloading: cider/piggieback/0.3.6/piggieback-0.3.6.jar from https://repo.clojars.org/
Downloading: com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar from https://repo1.maven.org/maven2/
Downloading: com/google/code/gson/gson/2.7/gson-2.7.jar from https://repo1.maven.org/maven2/
Clojure 1.9.0
user=>
Classpath
$ clj -Spath | sed -e 's/:/\'$'\n/g'
src
/Users/sbondaryev/.m2/repository/com/cognitect/transit-java/0.8.332/transit-java-0.8.332.jar
/Users/sbondaryev/.m2/repository/org/clojure/data.json/0.2.6/data.json-0.2.6.jar
/Users/sbondaryev/.m2/repository/org/clojure/clojure/1.9.0/clojure-1.9.0.jar
/Users/sbondaryev/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
/Users/sbondaryev/.m2/repository/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar
/Users/sbondaryev/.m2/repository/org/clojure/core.specs.alpha/0.1.24/core.specs.alpha-0.1.24.jar
/Users/sbondaryev/.m2/repository/org/clojure/spec.alpha/0.1.143/spec.alpha-0.1.143.jar
/Users/sbondaryev/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar
/Users/sbondaryev/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar
/Users/sbondaryev/.m2/repository/org/clojure/google-closure-library/0.0-20170809-b9c14c6b/google-closure-library-0.0-20170809-b9c14c6b.jar
/Users/sbondaryev/.m2/repository/org/clojure/clojurescript/1.10.339/clojurescript-1.10.339.jar
/Users/sbondaryev/.m2/repository/com/google/jsinterop/jsinterop-annotations/1.0.0/jsinterop-annotations-1.0.0.jar
/Users/sbondaryev/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.7/jackson-core-2.8.7.jar
/Users/sbondaryev/.m2/repository/org/mozilla/rhino/1.7R5/rhino-1.7R5.jar
/Users/sbondaryev/.m2/repository/org/clojure/google-closure-library-third-party/0.0-20170809-b9c14c6b/google-closure-library-third-party-0.0-20170809-b9c14c6b.jar
/Users/sbondaryev/.m2/repository/com/google/javascript/closure-compiler-externs/v20180610/closure-compiler-externs-v20180610.jar
/Users/sbondaryev/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
/Users/sbondaryev/.m2/repository/org/clojure/tools.nrepl/0.2.13/tools.nrepl-0.2.13.jar
/Users/sbondaryev/.m2/repository/com/google/guava/guava/22.0/guava-22.0.jar
/Users/sbondaryev/.m2/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar
/Users/sbondaryev/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
/Users/sbondaryev/.m2/repository/com/cognitect/transit-clj/0.8.309/transit-clj-0.8.309.jar
/Users/sbondaryev/.m2/repository/args4j/args4j/2.33/args4j-2.33.jar
/Users/sbondaryev/.m2/repository/org/clojure/tools.reader/1.3.0-alpha3/tools.reader-1.3.0-alpha3.jar
/Users/sbondaryev/.m2/repository/com/google/javascript/closure-compiler-unshaded/v20180610/closure-compiler-unshaded-v20180610.jar
/Users/sbondaryev/.m2/repository/com/google/protobuf/protobuf-java/3.0.2/protobuf-java-3.0.2.jar
/Users/sbondaryev/.m2/repository/cider/piggieback/0.3.6/piggieback-0.3.6.jar
/Users/sbondaryev/.m2/repository/com/google/code/findbugs/jsr305/3.0.1/jsr305-3.0.1.jar
/Users/sbondaryev/.m2/repository/com/google/code/gson/gson/2.7/gson-2.7.jar
Setup handler
user=> (require '[clojure.tools.nrepl.server :as server])
nil
user=> (require '[cider.piggieback :as pback])
nil
user=> (server/start-server :handler (server/default-handler #'pback/wrap-cljs-repl))
#clojure.tools.nrepl.server.Server{:server-socket #object[java.net.ServerSocket 0x586728e8 "ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=58990]"], :port 58990, :open-transports #object[clojure.lang.Atom 0x745926c3 {:status :ready, :val #{}}], :transport #object[clojure.tools.nrepl.transport$bencode 0x75dd0f94 "clojure.tools.nrepl.transport$bencode@75dd0f94"], :greeting nil, :handler #object[clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__577 0x72324965 "clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__577@72324965"], :ss #object[java.net.ServerSocket 0x586728e8 "ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=58990]"]}
Try to setup repl-env
user=> (pback/cljs-repl (cljs.repl.nashorn/repl-env))
CompilerException java.lang.ClassNotFoundException: cljs.repl.nashorn, compiling:(NO_SOURCE_PATH:6:18)
user=> (require '[cljs.repl.nashorn :as nashorn])
nil
user=> (pback/cljs-repl (nashorn/repl-env))
IllegalStateException Can't change/establish root binding of: *cljs-repl-env* with set clojure.lang.Var.set (Var.java:223)
In the first case you didn't require nashorn.
In the second case you used the CLI Tools and attempted to start it without being in an nREPL env.
Go back to the lein
example and require nashorn before you try to start a cljs REPL.
@bbatsov this is a case of literally following the usage example in the README
Yeah, yeah. I know. I meant to update it after seeing the issue, but I forgot about this.