## 开始吧
Clojure是一个相对来说很新的语言。在经过一些年的努力之后,Clojure的第一版是在2007年10月16日发布的。Clojure的主要部分被称为 “Clojure proper” 或者 “core”。你可以从这里下载: [http://clojure.org/downloads](http://clojure.org/downloads) . 你也可以使用 [Leiningen](http://github.com/technomancy/leiningen/) 。最新的源代码可以从它的Git库下载.
“Clojure Contrib“是一个大家共享的类库列表。其中有些类库是成熟的,被广泛使用的并且最终可能会被加入Clojure Proper的。但是也有些库不是很成熟,没有被广泛使用,所以也就不会被包含在Conjure Proper里面。所以Clojure Proper里面是鱼龙混杂,使用的时候要自己斟酌,文档在这里: [http://richhickey.github.com/clojure-contrib/index.html](http://richhickey.github.com/clojure-contrib/index.html)
对于一个Clojure Contrib, 有三种方法可以得到对应的jar包. 首先你可以下载一个打包好的jar包。其次你可以用maven 来自己打个jar包. Maven可以从这里下载 [http://maven.apache.org/](http://maven.apache.org/) . 打包命令是 “ `mvn package` “. 再其次你可以用ant. ant可以从这里下载 [http://ant.apache.org/](http://ant.apache.org/) 。命令是: “ `ant -Dclojure.jar={path}` “.
要从最小的源代码来编译clojure, 我们假设你已经安装了 [Git](http://git-scm.com/) 和 [Ant](http://ant.apache.org/) , 运行下面的命令来下载并且编译打包Clojure Proper和Clojure Contrib:
```
git clone git://github.com/richhickey/clojure.git
cd clojure
ant clean jar
cd ..
git clone git://github.com/richhickey/clojure-contrib.git
cd clojure-contrib
ant -Dclojure.jar=../clojure/clojure.jar clean jar
```
下一步,写一个脚本来运行Read/Eval/Print Loop (REPL) 以及运行 Clojure 程序. 这个脚本通常被命名为”clj”. 怎么使用REPL我们等会再介绍. Windows下面,最简单的clj脚本是这样的(UNIX, Linux以及 Mac OS X下面把 %1 改成 $1):
```
java -jar /path/clojure.jar %1
```
这个脚本假定 `java` 在你的 `PATH` 环境变量里面. 为了让这个脚本更加有用:
* 把经常使用的JAR包比如 “Clojure Contrib” 以及数据库driver添加到classpath里面去( `-cp` ).
* 使clj更好用:用 [rlwrap](http://utopia.knoware.nl/~hlub/uck/rlwrap/) (利用keystrokes来支持的) 或者 [JLine](http://jline.sourceforge.net/) 来得到命令提示以及命令历史提示。
* 添加一个启动脚本来设置一些特殊变量(比如 `*print-length*和` `*print-level*` ), 加载一些常用的、不再 `java.lang 里面的包` 加载一些常用的不再 `clojure.core` 里面的函数并且定义一些常用自定义的函数.
使用这个脚本来启动REPL我们会等会介绍. 用下面这个命令来运行一个clojure脚本(通常以clj为后缀名):
```
clj source-file-path
```
更多细节看这里 [http://clojure.org/getting_started](http://clojure.org/getting_started) 以及这里: [http://clojure.org/repl_and_main](http://clojure.org/repl_and_main) 。同时Stephen Gilardi 还提供了一个脚本: [http://github.com/richhickey/clojure-contrib/raw/master/launchers/bash/clj-env-dir](http://github.com/richhickey/clojure-contrib/raw/master/launchers/bash/clj-env-dir) 。
为了更充分的利用机器的多核,你应该这样来调用: “ `java -server ...` “.
提供给Clojure的命令行参数被封装在预定义的变量 `*command-line-args*里面。`