Clojure安装与运行 #
一、安装前提 #
1.1 Java环境 #
Clojure运行在JVM上,需要先安装Java:
bash
java -version
要求:Java 8或更高版本(推荐Java 11或17 LTS)
1.2 安装Java #
macOS:
bash
brew install openjdk@17
Ubuntu/Debian:
bash
sudo apt update
sudo apt install openjdk-17-jdk
Windows:
从 Adoptium 下载安装。
二、安装方式 #
Clojure有两种主要的安装方式:
| 方式 | 工具 | 特点 |
|---|---|---|
| 官方CLI | clojure | 官方推荐,轻量级 |
| Leiningen | lein | 社区标准,功能丰富 |
2.1 安装Clojure官方CLI #
macOS:
bash
brew install clojure/tools/clojure
Linux:
bash
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
chmod +x linux-install.sh
sudo ./linux-install.sh
Windows:
powershell
powershell -Command "iwr -useb https://download.clojure.org/install/win-install-1.11.1.1435.ps1 | iex"
验证安装:
bash
clojure --version
2.2 安装Leiningen #
macOS:
bash
brew install leiningen
Linux:
bash
curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein -o ~/bin/lein
chmod +x ~/bin/lein
lein
Windows:
- 下载 lein.bat
- 放到PATH路径中
- 运行
lein self-install
验证安装:
bash
lein version
三、REPL基础 #
3.1 启动REPL #
使用Clojure CLI:
bash
clj
使用Leiningen:
bash
lein repl
3.2 REPL交互 #
clojure
user=> (+ 1 2 3)
6
user=> (defn hello [name]
(str "Hello, " name "!"))
#'user/hello
user=> (hello "Clojure")
"Hello, Clojure!"
user=> (quit)
3.3 REPL快捷键 #
| 快捷键 | 功能 |
|---|---|
| Ctrl+C | 中断当前输入 |
| Ctrl+D | 退出REPL |
| ↑/↓ | 历史命令 |
| Tab | 自动补全 |
四、项目创建 #
4.1 使用Leiningen创建项目 #
bash
lein new my-project
项目结构:
text
my-project/
├── project.clj
├── README.md
├── resources/
├── src/
│ └── my_project/
│ └── core.clj
└── test/
└── my_project/
└── core_test.clj
4.2 使用Clojure CLI创建项目 #
创建 deps.edn 文件:
clojure
{:paths ["src"]
:deps {}
:aliases {:run {:main-opts ["-m" "my-project.core"]}}}
创建源文件 src/my_project/core.clj:
clojure
(ns my-project.core)
(defn -main []
(println "Hello, World!"))
运行:
bash
clj -M -m my-project.core
五、开发环境配置 #
5.1 VS Code + Calva #
- 安装VS Code
- 安装Calva插件
- 打开Clojure项目
- 使用
Ctrl+Alt+C Enter连接REPL
Calva配置:
json
{
"calva.replConnectSequences": [
{
"name": "Leiningen",
"projectType": "Leiningen",
"cljsType": "none"
}
]
}
5.2 Emacs + CIDER #
- 安装Emacs
- 配置MELPA源
- 安装CIDER
elisp
(use-package cider
:ensure t)
- 打开
.clj文件 M-x cider-jack-in启动REPL
5.3 IntelliJ + Cursive #
- 安装IntelliJ IDEA
- 安装Cursive插件
- 打开Clojure项目
- 使用REPL功能
六、依赖管理 #
6.1 Leiningen (project.clj) #
clojure
(defproject my-project "0.1.0-SNAPSHOT"
:description "My Clojure Project"
:dependencies [[org.clojure/clojure "1.11.1"]
[ring/ring "1.9.6"]]
:main my-project.core)
常用命令:
bash
lein deps
lein run
lein test
lein uberjar
6.2 Clojure CLI (deps.edn) #
clojure
{:paths ["src" "resources"]
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
ring/ring {:mvn/version "1.9.6"}}
:aliases {:test {:extra-paths ["test"]
:extra-deps {}}}}
常用命令:
bash
clj -M -m my-project.core
clj -X:test
clj -M -P
七、运行Clojure程序 #
7.1 脚本方式 #
创建 hello.clj:
clojure
#!/usr/bin/env clojure
(println "Hello, World!")
运行:
bash
chmod +x hello.clj
./hello.clj
7.2 使用Leiningen运行 #
bash
lein run
7.3 编译为JAR #
bash
lein uberjar
java -jar target/my-project-0.1.0-standalone.jar
八、常见问题 #
8.1 依赖下载慢 #
配置国内镜像(~/.m2/settings.xml):
xml
<settings>
<mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
8.2 REPL连接失败 #
检查端口是否被占用:
bash
lsof -i :port
8.3 版本冲突 #
查看依赖树:
bash
lein deps :tree
或:
bash
clj -Stree
九、总结 #
安装Clojure的关键步骤:
- 安装Java:确保JDK 8+
- 选择工具:Leiningen或Clojure CLI
- 配置编辑器:Calva、CIDER或Cursive
- 创建项目:lein new 或 deps.edn
- 启动REPL:交互式开发
下一步,让我们编写第一个Clojure程序!
最后更新:2026-03-27