In my case, I set the value of java.ext.dirs to a list of just one directory. That directory contains (relative) symbolic links to all the Jar files and directories I want Clojure to use as its Classpath.
As a concrete example, here's what I have in that directory: clojure-contrib.classes -> ../../clojure-contrib/classes clojure-contrib.src -> ../../clojure-contrib/src clojure.jar -> ../../clojure/clojure.jar derby.jar -> ../javadb/lib/derby.jar etc -> ../../../clj/etc itext-2.0.6.jar -> ../jfreechart/lib/itext-2.0.6.jar jcommon-1.0.12.jar -> ../jfreechart/lib/jcommon-1.0.12.jar jfreechart-1.0.9.jar -> ../jfreechart/lib/jfreechart-1.0.9.jar jsr166y.jar -> ../jsr166y/jsr166y.jar local -> ../../../clj/local miglayout-3.6-sources.jar -> ../miglayout/miglayout-3.6-sources.jar miglayout-3.6-swing.jar -> ../miglayout/miglayout-3.6-swing.jarI've enclosed the bash script I'm currently using the launch Clojure. The one required environment variable is CLOJURE_DIRS which I set to the directory containing the links above. I like how simple the script is and how easy it is to manage which jars and directories are available to Clojure REPLs using this method.
--Steve(note: using this with clojure.contrib.repl-ln requires revision 337 (of today) or later)
#!/bin/bash # clj: Launches a Clojure REPL with command line arguments # # Environment variables: # # Required: ## CLOJURE_DIRS A list of paths to directories containing (either directly # or via symbolic links) the jar files and directories that # Clojure will use as its Classpath. The paths are separated
# by File.pathSeparatorChar (: on UNIX). # # Optional: # # CLOJURE_MAIN The Java class to launch # default: clojure.main # example: clojure.contrib.repl_ln # # CLOJURE_OPTS Java options for this REPL's JVM instance # default: # example:"-Xms32M -Xmx128M -server" # # CLOJURE_INIT Path to an init file to run, an @ prefix specifies a # classpath-relative path. # default: # example:"@init.clj" set -o errexit set -o nounset #set -o xtrace JAVA=java OPTS=${CLOJURE_OPTS:-} DIRS="-Djava.ext.dirs=${CLOJURE_DIRS}" MAIN=${CLOJURE_MAIN:-clojure.main} INIT=${CLOJURE_INIT:+--init ${CLOJURE_INIT}} REPL=--repl exec $JAVA $OPTS $DIRS $MAIN $INIT $REPL $@
smime.p7s
Description: S/MIME cryptographic signature