Welcome! Please see the About page for a little more info on how this works.

0 votes
ago in Clojure CLI by

Running clj printed out a NullPointerException. The problem was caused by an invalid deps.edn. The error message could be much more helpful.

$ clj
Error building classpath. Cannot invoke "java.io.File.getAbsolutePath()" because the return value of "clojure.java.io$file.invoke
Static(Object)" is null
java.lang.NullPointerException: Cannot invoke "java.io.File.getAbsolutePath()" because the return value of "clojure.java.io$file.
invokeStatic(Object)" is null
        at clojure.tools.deps.edn$io_err.invokeStatic(edn.clj:43)
        at clojure.tools.deps.edn$read_edn.invokeStatic(edn.clj:68)
        at clojure.tools.deps.edn$read_deps.invokeStatic(edn.clj:137)
        at clojure.tools.deps.edn$read_deps.doInvoke(edn.clj:127)
        at clojure.lang.RestFn.invoke(RestFn.java:413)
        at clojure.tools.deps.edn$choose_deps.invokeStatic(edn.clj:187)
        at clojure.tools.deps.edn$create_edn_maps.invokeStatic(edn.clj:192)
        at clojure.tools.deps$create_edn_maps.invokeStatic(deps.clj:59)
        at clojure.tools.deps$create_basis.invokeStatic(deps.clj:692)
        at clojure.tools.deps.script.make_classpath2$run_core.invokeStatic(make_classpath2.clj:90)
        at clojure.tools.deps.script.make_classpath2$run.invokeStatic(make_classpath2.clj:139)
        at clojure.tools.deps.script.make_classpath2$_main.invokeStatic(make_classpath2.clj:183)
        at clojure.tools.deps.script.make_classpath2$_main.doInvoke(make_classpath2.clj:154)
        at clojure.lang.RestFn.applyTo(RestFn.java:140)
        at clojure.lang.Var.applyTo(Var.java:707)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.main$main_opt.invokeStatic(main.clj:515)
        at clojure.main$main_opt.invoke(main.clj:511)
        at clojure.main$main.invokeStatic(main.clj:665)
        at clojure.main$main.doInvoke(main.clj:617)
        at clojure.lang.RestFn.applyTo(RestFn.java:140)
        at clojure.lang.Var.applyTo(Var.java:707)
        at clojure.main.main(main.java:40)

Here is the deps.edn file (note the extra }):

{:paths ["src" "resources"]
 :deps {org.clojure/clojure {:mvn/version "1.12.6"}}
 :aliases
 {:build {:deps {io.github.clojure/tools.build {:mvn/version "0.10.14"}}
          :ns-default build}}}}

Please log in or register to answer this question.

...