Dependencies and Java configuration
1. Java
Check you have Sun Java installed:
$ java -version java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)
If you see 'OpenJDK', you are using GNU Java: GCJ. It's better to switch to Sun Java.
2. libjline
On Ubuntu:
$ sudo apt-get install libjline-java libjline-java-doc
Clojure
Clojure is under quite rapid development still, so it's better to clone the git repository and compile it:
$ cd /usr/share $ sudo git clone git://github.com/richhickey/clojure.git $ cd /usr/share/clojure
The 'ant' package is needed for compilation.
$ sudo apt-get --no-install-recommends install ant ant-optional
(The parameter '--no-install-recommends' avoids the installation di GCJ.)
$ sudo ant $ cd /usr/share/java $ sudo ln -s /usr/share/clojure/clojure.jar
Check it works
$ java -cp /usr/share/java/clojure.jar clojure.main -e '(str "Hello World!")' "Hello World!"
REPL
The best way to start using Clojure is via the REPL:
$ java -cp /usr/share/java/clojure.jar:/usr/share/java/jline.jar jline.ConsoleRunner clojure.main user=> (defn say-hello [] (str "Hello World!")) #'user/say-hello user=> (say-hello) "Hello world!" user=> [Ctrl+D]
Startup script
The following script was adapted from here
Create it as ‘clj’ in a directory in your PATH:
#!/bin/bash
CLOJURE=/usr/share/java/clojure.jar
JLINE=/usr/share/java/jline.jar
for i in $CLOJURE $JLINE do
if [ ! -e "$i" ]; then
echo "File not found: $i"
exit 1
fi
done
if [ -z "$1" ]; then
java -cp $CLOJURE:$JLINE jline.ConsoleRunner clojure.main
else
CLASS=$1
shift
java -cp $CLOJURE clojure.lang.Script $CLASS -- $*
fi
Remember to make it executable.