Getting started with La Clojure on Mac OS X, a visual guide
These are instructions to get started with Clojure using IntelliJ IDEA, La Clojure and Leiningen for people that don’t know any of those tools. They are for Mac OS X but they may be adaptable to other operating systems as well.
It doesn’t expect you to know Clojure or IntelliJ IDEA. I think this might be a good way for beginners to get started (instead of Emacs for example). I been using RubyMine for quite a while and I’m happy with it. The only requirement in installing Homebrew on your mac, which you should anyway if you want to code.
Install Clojure and Leiningen using Homebrew:
brew install clojure brew install leiningen
Download IntelliJ IDEA and install it:
Open the preferences (⌘,) and go to the plugins section:
Download and install La Clojure plugin:
Download and install the Leiningen plugin.
Restart IntelliJ IDEA:
Create a Leiningen project:
lein new foobar Created new project in: /Users/pupeno/Temporary/foobar
Open the project in IntelliJ IDEA:
Now open Project Structure (⌘;) and go to SDK. If you tried to run the Clojure REPL and got the error “No jdk for module ‘foobar'”, this is what you need to do to fix it:
Click on the plus sign and add a JSDK:
The default is just fine:
And you should see something like:
Go to the project
and select the newly created 1.6 SDK:
Go to modules
and add a single entry:
Use the installed Clojure from
I’m not totally sure about that step. It might be that the IntelliJ project you are creating works only on a machine where Clojure is located on the same path.
As they say… works for me! Restart IntelliJ… not sure if you’ll need to, but I needed it.
Open the project if it wasn’t open and start the Clojure REPL (⇧⌘F10), it’s in the Tools menu:
Open a file:
Type a little program, like:
(defn hello-world  (println "Hello world"))
Load the file on the REPL (⇧⌘L), which is in Tools → Clojure REPL:
Enjoy magnificent code completion:
and run the code:
And that’s it. Whether IntelliJ IDEA and La Clojure is a viable developing environment only time will tell.