Last I checked, I think the only real option for calling Julia from Java is via JNA to the Julia C API. Not impossible, but not as convenient as JavaCall.jl.
As for Julia vs Clojure, I had a go at implementing a simple OCR nearest-neighbors algorithm in both Julia and Clojure. The Clojure code came out a bit shorter, and was moderately more expressive, but required almost 100x the runtime. Granted, I haven’t yet taken the time to add type-hints to the Clojure version, which could explain some of the difference. I suspect the biggest issue is the lack of a good dataframes library for Clojure, though you could pull in, for example, Spark’s dataframes via Clojure’s very convenient Java interop.
That actually brings up another point that some others have mentioned in this thread. Clojure benefits from the entire Java ecosystem. Of course, the more Java you bring into your Clojure, the less you benefit from the Lisp-y-ness of Clojure. You should check, though, as there is already a healthy ecosystem of wrappers that bring back some of that Lisp goodness (e.g.
https://github.com/gorillalabs/sparkling for Spark). So it’s trade-offs all around.
One last point (something I’ve been meaning to look at but haven’t had the time): reading CSV files off disk was about 10x faster in Clojure than Julia. Something else to consider.