You can't change the classpath, but you can create a new classloader context to run within your app that includes additional directories (see URLClassLoader). Doing this will require some care in how you first instantiate the Clojure runtime (via the Clojure class in the Java API) and the classes of objects returned from the Clojure API (as the app context needs access to any classes you return). In particular, if you're expecting anything other than built-in Java interfaces (Collection, List, Map, String, etc), I would recommend creating Java interfaces and returning reified instances of those.