java -cp clojure.jar clojure.main
First and foremost, Clojure is dynamic. That means that a Clojure program is not just something you compile and run, but something with which you can interact. Clojure is not a language abstraction, but an environment, where almost all of the language constructs are reified, and thus can be examined and changed. This leads to a substantially different experience from running a program, examining its results (or failures) and trying again. In particular, you can grow your program, with data loaded, adding features, fixing bugs, testing, in an unbroken stream.
While Clojure can be embedded in a Java application, or used as a scripting language, the primary programming interface is the Read-Eval-Print-Loop (REPL). This is a simple console interface that allows you to enter and execute commands, and examine their results. You can start the Clojure REPL like this, and then follow along trying the samples in this feature tour:
java -cp clojure.jar clojure.main
This will give you a prompt like this:
user=>
Most Clojure commands take the form (command arguments*). Try it:
(def x 6)
-> #'user/x
(def y 36)
-> #'user/y
(+ x y)
-> 42