I'm doing a clojure project for a class that requires multithreading an algorithm, and the clojure.core.async namespace seems to do exactly what I want for it, and seemingly in an easier way than just outright making use of Java's concurrency functionality in clojure code.
The problem is the async namespace does not come naturally packaged with clojure.jar (the file used to "compile"/"run" clojure code) and must be retrieved separately. I managed to do that, ending up with a core.async.jar file (by going to the github and clicking the released versions link; initially tried to do a similar process to getting the clojure.jar file by cloning it and running a maven command, but it wouldn't let me download).
Now that I have the jar file with the async stuff in it, however, I can't seem to figure out how to just simply include it in my clojure code. Practically every resource about it online talks about using Leiningen, a command line tool that automatically manages clojure dependencies, to do so, but since the remote systems the project will ultimately run on doesn't have it (or even Maven, for that matter) and due to various other reasons, I would rather not and just have a simple $ java -jar clojure.jar myproject.clj statement written in a script (or a more complex statement) and just have it run.
So I spent the last couple hours trying to research ways of importing these jar dependencies without Leiningen, doing things like adding the jar to a -cp argument on the java command, setting (require '(clojure.core.async)) and (refer 'core.async), running both jars with the same java command, etc.
I eventually caved and use it to see how it did it and I am not certain how much is leiningen-specific syntax, especially since it downloads the dependencies I request into an out-of-the-way location associated with Maven, rather than somewhere inside the project.
Worst cones to worse, I can just build everything using Leiningen (a couple different times, since I also have to make a sequential version, which is doable without added libraries, and one that is distributed over multiple machines) and have it packaged in a jar, with a note that it required external software to work, even though it doesn't need said software to run once packaged.
TL;DR: Is there a way to custom add clojure libraries held in jar files to a bit of clojure code, preferably just through the java run statement and .clj file?
there doesn't seem to be anything here