第一次使用
> **时效说明**:本文内容以 2026 年 3 月为基准。
Claude Code:第一次使用
时效说明:本文内容以 2026 年 3 月为基准。
4.1 启动前的准备
在第一次用 Claude Code 之前,做一点准备工作能让体验更好。
4.1.1 确认项目目录
Claude Code 需要在你的项目根目录里启动。所谓"项目根目录",就是包含 pom.xml(Maven 项目)或 build.gradle(Gradle 项目)的那个目录,也是 .git 文件夹所在的地方。
不要在错误的目录启动。如果你在 ~/workspace 启动,Claude Code 会扫描整个 workspace 下的所有内容,上下文会非常混乱。应该 cd 到具体的项目目录:
# 确认你在正确的位置
pwd
# 看看是不是你想要的项目根目录
# 确认这是个 Maven 项目
ls pom.xml
# 确认有 git 管理(强烈推荐)
ls .git
4.1.2 检查 .gitignore
如果你的项目还没有 .gitignore,现在加一个。有 .gitignore 的好处是:Claude Code 在扫描项目文件时会忽略这些文件,不会把编译输出、依赖包、日志文件这些无关内容塞进上下文里,让它的注意力集中在真正重要的源代码上。
一个典型的 Java 项目 .gitignore:
# Maven 编译输出
target/
# IDEA 项目文件
.idea/
*.iml
*.ipr
*.iws
# Eclipse 项目文件
.classpath
.project
.settings/
# 日志文件
*.log
logs/
# 本地配置(通常包含密码等敏感信息)
application-local.yml
application-local.properties
# 操作系统文件
.DS_Store
Thumbs.db
4.1.3 初始化 git(如果还没有)
强烈建议在 git 仓库里使用 Claude Code。如果你的项目还没有 git:
cd /path/to/your/project
git init
git add .
git commit -m "初始化项目,开始使用 Claude Code"
有了 git,Claude Code 的任何改动都能追踪,改坏了一秒恢复:
# 查看 Claude Code 改了什么
git diff
# 如果不满意,撤销所有改动
git checkout .
# 如果想保留一部分,用交互式恢复
git checkout -p
4.2 在项目目录里启动
准备好之后,进入你的项目根目录,运行 claude:
# 进入你的项目根目录
cd /path/to/your/spring-boot-project
# 启动 Claude Code
claude
Claude Code 会自动扫描当前目录的文件结构,建立初始上下文。第一次在某个项目里启动,它会问你是否信任这个目录(跟 IDE 第一次打开项目差不多),输入 yes 确认就行。
启动成功后你会看到交互提示符:
╭─────────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
╰─────────────────────────────────────────╯
✔ Logged in as: your@email.com
> _
4.3 第一个任务:让它解释代码
最简单的入门任务是让它解释代码,不涉及文件修改,没有任何风险。这也是建立信任感的第一步——先看看它理解代码到什么程度,再考虑让它改代码。
4.3.1 解释一个具体方法
假设你项目里有个复杂的查询方法,你不确定它的逻辑,直接用中文问:
解释一下 UserService 里的 findActiveUsersWithOrders 方法是干什么的
Claude Code 会自动找到这个文件,读取相关代码,然后用人话解释。不需要你告诉它文件在哪里,不需要你粘贴代码。
4.3.2 如何问才能得到好答案
问法不同,得到的答案质量差很多。几个建议:
带上具体场景,不要只问"这是什么":
# 效果一般
解释 OrderService
# 效果好
我在排查一个订单状态不更新的 bug,帮我解释一下 OrderService 里的 updateOrderStatus 方法,
重点看一下它什么情况下会抛异常,以及它调用了哪些下游服务
告诉它你的背景,避免它解释你已经知道的东西:
我是 Java 后端开发,对 Spring Boot 比较熟,但不了解这个项目的业务逻辑。
请解释一下这个项目的用户权限体系是怎么设计的,用了什么技术方案(Spring Security/Shiro/自定义)
让它聚焦在你困惑的地方:
UserService 里的 processUserRegistration 方法我大部分看懂了,
但是第 47 行到第 65 行这段逻辑有点没看懂,涉及到一个双重检查锁,
帮我解释一下为什么要这样写,以及它解决的是什么并发问题
4.3.3 分析整个项目的技巧
刚接手一个陌生项目时,先让 Claude Code 帮你建立全局理解,再深入细节。
第一步:问项目架构
这个项目的整体架构是什么?主要有哪些模块,它们之间是怎么交互的?
它会扫描项目结构,分析各个包和类的关系,给你一个概览。
第二步:问技术栈和依赖
这个项目用了哪些主要的外部依赖?数据库用的什么,缓存用的什么,
消息队列用的什么?有没有用到什么不常见的库?
第三步:问核心业务流程
这个项目最核心的业务流程是什么?从用户发起一个[核心操作]开始,
到最终完成,数据经过了哪些处理步骤?
第四步:再问具体细节
建立了全局理解之后,再深入你关心的具体部分。这样你能更好地判断 Claude Code 的解释是否准确,也能提出更有针对性的问题。
4.4 让 Claude Code 修改代码的完整流程
当你让 Claude Code 修改代码时,它不会立刻动文件,而是先给你看它打算怎么改,然后等你确认。
4.4.1 发起一个修改任务
比如你说:
给 UserController 的所有接口方法加上参数校验,用 @Valid 注解,
然后在全局异常处理器里处理 MethodArgumentNotValidException,
返回统一格式的错误响应
Claude Code 会先分析代码,然后展示一个类似 git diff 的界面:
● Edit UserController.java
┌─ Before ──────────────────────────────────────────
│ @PostMapping("/register")
│ public ResponseEntity<User> register(@RequestBody UserDTO dto) {
│ return ResponseEntity.ok(userService.register(dto));
│ }
└───────────────────────────────────────────────────
┌─ After ───────────────────────────────────────────
│ @PostMapping("/register")
│ public ResponseEntity<?> register(@Valid @RequestBody UserDTO dto) {
│ return ResponseEntity.ok(userService.register(dto));
│ }
└───────────────────────────────────────────────────
Apply this change? [y/n/a/e/d]
4.4.2 理解每个确认选项
这个确认界面的每个选项含义不同:
| 选项 | 含义 | 什么时候用 |
|---|---|---|
y |
确认这一处改动,继续看下一处 | 这处改动没问题,逐个确认 |
n |
跳过这一处改动,继续看下一处 | 这处你不想改,但其他的可能没问题 |
a |
全部确认,不再逐个询问 | 你已经浏览过所有改动,全部认可 |
e |
在编辑器里打开这个文件,手动修改 | 你想在 Claude 的基础上做调整 |
d |
显示完整的 diff | 想看改动的更多上下文 |
关于 a(全部确认)的使用建议: 不要在没有看过所有改动的情况下用 a。正确的做法是先快速浏览所有的 diff(用 d 查看详情),确认没有意外的改动,再用 a 一次性确认。
关于 n(跳过)的用法: 如果某处改动你不认可,用 n 跳过,但这不会让 Claude Code 知道你为什么跳过。跳过之后,你可以继续对话,告诉它为什么你不接受这处改动,让它重新考虑。
4.4.3 任务完成后的检查
Claude Code 完成改动之后,不要直接就结束了。做一下这些检查:
检查一:看 git diff
# 退出 Claude Code(Ctrl+D 或者输入 /exit),然后
git diff
仔细看每一处改动,确认没有你不知道的修改。
检查二:编译验证
mvn compile -q
# 如果没有报错说明语法和编译没问题
检查三:运行测试
mvn test
# 如果有现成的测试,跑一下,确认没有回归问题
检查四:启动应用验证
对于涉及运行时行为的改动(比如加了 Spring Bean 配置、改了自动装配),最好启动一下应用确认没有问题:
mvn spring-boot:run
4.5 如何终止正在进行的任务
有时候你发现 Claude Code 在做的事情不对,需要中途停止。
方法:按 Ctrl+C
这会立刻停止当前任务。如果 Claude Code 正在逐个展示 diff,Ctrl+C 会停止后续的 diff 展示。如果它正在执行 shell 命令,Ctrl+C 会终止那个命令。
注意: Ctrl+C 只停止当前任务,不会撤销已经写入的文件。如果它已经修改了几个文件,这些文件改动不会自动还原。需要你手动 git checkout . 或者 git checkout 具体文件名 来还原。
中途停止之后的处理:
# 查看 Claude Code 已经改了什么
git diff
# 如果想全部撤销
git checkout .
# 如果想保留一部分改动,用交互式 checkout
git checkout -p
4.6 一次完整的 Spring Boot 实战示例
下面用一个具体的场景,走一遍从分析到改动再到验证的完整流程。
场景:给一个 Spring Boot 项目加接口限流功能
假设你有一个 Spring Boot 项目,要给它加接口限流功能。以前你需要搜文档、找示例、手动写配置类。现在这样做:
第一步:分析现有代码(只读,无风险)
cd ~/workspace/my-spring-boot-project
claude
先让它了解项目现状:
帮我了解一下这个项目的现状:
1. 目前用了哪些 Spring Boot 版本和主要依赖?
2. 有没有已经引入的限流或者熔断相关的依赖?
3. Controller 层有哪些接口?
它会读取 pom.xml 和 Controller 文件,给你一个准确的现状描述。
第二步:设计方案
根据它给出的现状,告诉它你的要求:
好的,基于你了解的项目情况,帮我规划一下接口限流的实现方案:
要求:
1. 用 Resilience4j 实现
2. 限流规则:每秒最多 10 个请求
3. 超出限制返回 429 状态码和友好的提示信息
4. 给 UserController 和 OrderController 都加上
先给我说说你打算怎么做,不要直接改代码
它会告诉你计划:
● 我会执行以下步骤:
1. 在 pom.xml 添加 resilience4j-spring-boot3 依赖
2. 在 application.yml 添加限流配置
3. 创建 RateLimiterConfig.java 配置类(如果需要自定义配置)
4. 给 UserController 和 OrderController 加上 @RateLimiter 注解
5. 在全局异常处理器 GlobalExceptionHandler 里处理 RequestNotPermitted 异常
您确认要按照这个步骤进行吗?
这一步很重要:在让它动代码之前,先对齐方案。如果它的计划里有你不认可的地方,现在纠正,比改完之后再回滚省事得多。
第三步:执行改动
确认方案没问题之后:
可以,按照这个计划执行
它会开始一步一步展示每个文件的改动。认真看每一处 diff:
pom.xml的改动:确认依赖版本和 groupId 是否正确application.yml的改动:确认配置项名称和值是否合理- Controller 的改动:确认
@RateLimiter注解的参数是否正确 - 异常处理的改动:确认返回格式是否符合你的项目规范
第四步:验证
# 退出 Claude Code
# Ctrl+D 或输入 /exit
# 编译验证
mvn compile
# 跑测试
mvn test
# 如果没有问题,启动应用测试
mvn spring-boot:run
如果编译或者测试有错误,重新进入 Claude Code,把错误信息粘贴给它:
编译出现了错误:
[把错误信息粘贴在这里]
帮我修复
这个流程的完整时间对比:
- 手动实现:查文档 15 分钟 + 写代码 30 分钟 + 调试 30 分钟 = 约 75 分钟
- 用 Claude Code:分析 + 执行 + 验证 = 约 10-15 分钟
时间节省来自两方面:一是它查文档和写代码比你快,二是它生成的代码基本上第一次就能跑通,调试时间大幅减少。
4.7 JetBrains IDEA 集成(Java 开发者重点)
Java 后端开发者最常用的 IDE 是 IntelliJ IDEA。Claude Code 和 IDEA 有几种配合方式。
4.7.1 用 IDEA 的内置终端
这是最简单的方式,不需要任何额外配置:
- 在 IDEA 里打开你的项目
- 按
Alt+F12(Windows/Linux)或Option+F12(macOS)打开内置终端 - IDEA 的内置终端会自动在项目根目录启动
- 直接输入
claude启动
这样你可以同时看到 IDEA 里的代码和 Claude Code 的终端,Claude Code 改动文件后,IDEA 会自动检测到文件变化并刷新(通常会弹一个提示问你是否重新加载)。
推荐布局: IDEA 左侧是项目文件树,中间是代码编辑器,底部是终端(运行 Claude Code)。这样可以边看 diff 边看代码,确认改动时更有把握。
4.7.2 安装 Claude Code 插件
JetBrains 插件市场里有 Claude Code 的插件,安装后可以直接在 IDEA 里使用 Claude Code,不需要切换到终端。
安装方式:
- 打开 IDEA → Settings(
Ctrl+Alt+S) - 进入 "Plugins"
- 在 Marketplace 里搜索 "Claude Code"
- 安装官方的 Anthropic 插件,重启 IDEA
安装后,IDEA 侧边栏会多一个 Claude Code 的面板,点击打开。在这个面板里输入任务,文件改动会直接显示在编辑器里,体验更流畅。
提示: 如果你在 IDEA 里配置了 Claude Code 插件,环境变量配置(API Key 等)需要保证 IDEA 启动时能读到。最可靠的方式是用 ~/.claude/settings.json 配置,而不是 shell 的 export,因为 IDEA 不一定继承你的 shell 环境变量。
4.7.3 IDEA 和终端 Claude Code 配合的最佳实践
让 Claude Code 做,让 IDEA 看:
- Claude Code 在终端里执行改动
- IDEA 负责代码审查、智能提示、重构确认
- 改动完成后,在 IDEA 里用 "Local History" 或 git 面板审查改动
遇到编译错误的快速流程:
- Claude Code 做了改动
- IDEA 检测到文件变化,编译时出现错误(红色波浪线)
- 在 IDEA 里看到错误的具体信息
- 把错误信息复制到 Claude Code 的终端,让它修复
使用 IDEA 的 Git 工具审查改动:
Claude Code 改完之后,在 IDEA 里打开 "Git" 面板(Alt+9),可以看到所有改动的 diff,比终端里看 git diff 更直观,特别是涉及多个文件的改动。
4.8 常见问题解答
Q:Claude Code 扫描我的项目之后,会把代码发到服务器吗?
A:是的,Claude Code 会把你的代码作为上下文发送给 API 服务(Anthropic 或者你配置的第三方服务)。如果你的项目有保密要求,在使用前确认你们公司的数据安全政策,或者只在自己的私人项目上使用。
Q:Claude Code 改动文件之前我能设置备份吗?
A:最好的"备份"就是 git commit。在让它做大改动之前,先提交当前状态:
git add .
git commit -m "before claude-code refactoring"
这样即使改得不好,git reset --hard HEAD 就能完全恢复。
Q:Claude Code 卡住了,一直没有响应,怎么办?
A:先等 30 秒,有时候是 API 响应慢。如果还是没反应,按 Ctrl+C 中断。然后检查网络连接,确认 API 服务正常。如果用的是 DeepSeek,可以去 platform.deepseek.com 看看服务状态。
Q:我的问题太大,Claude Code 直接开始改代码了,我想先讨论方案怎么办?
A:在任务描述里加一句"先给我规划方案,不要直接修改代码"。或者按 Ctrl+C 停止,然后重新描述,强调"先讨论方案"。
Q:Claude Code 改了很多文件,我怎么知道改对了没有?
A:做好这几步:
- 用
git diff逐文件看改动 - 用
mvn compile确认编译通过 - 用
mvn test确认测试通过 - 如果有集成测试,跑一下集成测试
- 如果改动涉及运行时行为,本地启动应用手动测试一下
Q:Claude Code 生成的代码跟我的编码规范不一样(比如命名风格、缩进),怎么统一?
A:最好的方式是创建 .claude/CLAUDE.md 文件,在里面写明你的编码规范。比如:
# 项目编码规范
## 命名规范
- 类名:大驼峰(PascalCase)
- 方法名和变量名:小驼峰(camelCase)
- 常量:全大写下划线分隔(UPPER_SNAKE_CASE)
## 代码风格
- 缩进:4个空格
- 每行最大长度:120字符
- 花括号:K&R 风格
## 注释规范
- 所有 public 方法必须有 Javadoc
- 复杂逻辑要有行内注释
Claude Code 每次启动都会读取这个文件,然后按照你的规范生成代码。这个文件的更多用法在后面专门的章节里讲。
好了,这就是 Claude Code 的基本用法全貌。下一章开始介绍更高级的功能:用 CLAUDE.md 给项目设置 AI 行为规范,以及用 Hooks 实现自动化工作流。