适用读者:要在新机器/新服务器上把 JDK、Maven、数据库、IDE 装起来,且不想装完发现版本对不上的人。
前置:S01-B01(环境全景)、B02(JDK)。
覆盖旧文:A-2922(Java Environment / macOS 装 JDK)、A-2924(Windows 开发环境配置)、A-2925(Linux 云服务器一键脚本)、A-2926(在线 IntelliJ IDEA)→ 4 篇 / 约 1.2 万字符。
扩展点:E-S01-035(四条路径的取舍表)、E-S01-036(版本对齐矩阵:Spring Boot 3 要 JDK 17+)、E-S01-037(一键脚本的三步验证)。
上一篇:S01-J08 · 制品发布
下一篇:S01-J10 · IDEA 插件开发与 Maven 中央仓库发布。
1. 一句话结论
装环境的难点不是"装",是"对齐":JDK 版本要对得上框架,JAVA_HOME 要对得上 IDE,数据库端口要对得上连接串。 四条路径(本机 / 一键脚本 / 在线 IDE / 容器)装的是同一套东西,区别只在谁持有这些进程。
数据口径:
A-2922/A-2924/A-2925/A-2926原文(2023–2024 版本快照)。下表中的具体版本号属待核,装之前按官网当前版本核对。
2. 四条路径怎么选(E-S01-035)
| 路径 | 谁持有进程 | 适合 | 代价 |
|---|---|---|---|
| Windows / macOS 本机 | 你的电脑 | 日常开发、断网也能跑 | 环境漂移,换机重装 |
| Linux 云服务器一键脚本 | 服务器 | 演示、联调、跑中间件 | 要会 SSH,暴露端口有风险 |
| 在线 IDE | 浏览器厂商 | 试学、临时看代码 | 依赖网络,插件受限 |
| 容器(Docker Compose) | 容器运行时 | 团队统一、可复现 | 要懂镜像与卷 |
判据:"能不能复现"优先于"装得快"。 个人机器可以手装;要给别人复现,就写成一键脚本或 compose。
3. JDK:三条安装路径(E-S01-036)
3.1 macOS:Homebrew
# 1) 装 Homebrew(已有则跳过)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2) 看有哪些版本
brew search openjdk
# 3) 装 17
brew install openjdk@17
# 4) 建符号链接,让 /usr/libexec/java_home 找得到
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk-17.jdk
Intel Mac 的路径是
/usr/local/opt/openjdk@17/。实测:brew install后不建链接时,java -version可能仍是系统自带版本——这一步最容易漏。
3.2 Windows:安装包 + 环境变量
1) 下载 Temurin(Adoptium)MSI,安装时勾选:
[x] Set JAVA_HOME variable
[x] JavaSoft (Oracle) registry keys
2) 若未勾选,手工补:
JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-17.x.x-hotspot
PATH += %JAVA_HOME%\bin
3) 验证(新开一个 cmd,旧窗口不继承新变量):
java -version
实测坑:改完环境变量必须重开终端;IDE 里如果先启动过,也要重启 IDE 才会读到新的 JAVA_HOME。
3.3 版本对齐矩阵
| 框架/工具 | 要求 | 说明 |
|---|---|---|
| Spring Boot 3.x | JDK 17+ | 3.x 起不再支持 8/11 |
| Spring Boot 2.7 | JDK 8/11/17 | 老项目常见 |
| Maven 3.8/3.9 | JDK 8+ | 3.9 建议 17 |
| Gradle 8 | JDK 17+ | — |
| Android Gradle Plugin 8 | JDK 17 | — |
判据:先定框架版本,再定 JDK。反过来(先装 JDK 8 再上 Spring Boot 3)会得到一堆 Unsupported class file major version。
# 一次看清当前环境
java -version 2>&1; echo "JAVA_HOME=$JAVA_HOME"; mvn -v | head -3
预期输出:java version "17.x";JAVA_HOME 指向 JDK 目录而非 bin;mvn -v 的 Java version 与之一致。
4. 云服务器一键脚本:五步走完,三步验证(E-S01-037)
原文脚本(xfg-dev-tech-docker-install)把 JDK / Maven / Docker / MySQL / Redis / Nginx / Node 装成一组 shell。
# 1) 取脚本
git clone https://github.com/fuzhengwei/xfg-dev-tech-docker-install.git
# 国内:git clone https://gitcode.com/Yao__Shun__Yu/xfg-dev-tech-docker-install.git
# 2) 加执行权限
cd xfg-dev-tech-docker-install
find . -name "*.sh" -type f -exec chmod +x {} \;
# 3) 装 Docker(按发行版选)
sudo ./centos_run_install_docker_local.sh # CentOS
sudo ./ubuntu_run_install_docker_local.sh # Ubuntu
# 4) 装 JDK(8/17 按需)
sudo ./environment/jdk/install-jdk.sh
# 5) 装软件(MySQL/Redis/Nacos 等)
sudo ./run_install_software.sh
三步验证(脚本跑完必做):
| 验证 | 命令 | 通过标准 |
|---|---|---|
| JDK | java -version |
版本与脚本选的一致 |
| Docker | docker run --rm hello-world |
输出 Hello from Docker! |
| 数据库 | mysql -h127.0.0.1 -uroot -p -e "select 1" |
返回 1 |
判据:脚本不是"跑完就完事",是"跑完要验"。 脚本里常见失败是"镜像拉取超时"和"端口被占用",两者都不会让脚本非零退出。
安全提醒:云服务器上跑的 MySQL/Redis 只监听 127.0.0.1,或走安全组白名单;不要图省事 0.0.0.0 加弱密码。
5. 在线 IDE:它的边界
A-2926 记录的是浏览器里的 IntelliJ 界面(项目树、编辑器、标签页)。用它可以:
| 能做 | 不能做(多数情况) |
|---|---|
| 读代码、跳转、简单编辑 | 本地文件系统/端口 |
| 试学、演示 | 重型构建、调试器 |
| 共享会话 | 私有依赖仓库 |
判据:在线 IDE 是"看和试"的工具,不是"交付"的环境。 真跑构建还得回到本机或容器。
6. 常见误区
| 误区 | 纠正 |
|---|---|
| "装最新 JDK 最好" | Spring Boot 3 要 17+,但老项目要 8/11 |
| "改完环境变量就好了" | 要重开终端与 IDE |
| "一键脚本跑完就可用" | 必须做 JDK/Docker/DB 三项验证 |
| "在线 IDE 能当开发环境" | 端口、文件系统、私有依赖都受限 |
| "云上开 0.0.0.0 方便" | 等于把数据库暴露给全网 |
7. 自测
- Spring Boot 3.x 最低要哪个 JDK?装 JDK 8 会报什么错?
- macOS 用 brew 装完 JDK,为什么还要建符号链接?
- 一键脚本跑完后,三项验证分别是什么命令?
- 什么时候该选容器而不是本机安装?
答案
- JDK 17;
Unsupported class file major version。 /usr/libexec/java_home只认/Library/Java/JavaVirtualMachines/*.jdk下的链接。java -version、docker run --rm hello-world、mysql ... -e "select 1"。- 需要团队复现、或要跑中间件而不想污染本机时。
8. 下一篇
S01-J10 · IDEA 插件开发与 Maven 中央仓库发布 —— 从插件工程模板到 plugin.xml 扩展点,再到 GPG 签名、Sonatype 工单与 DNS 验证的完整发布链路。
本篇属于系列《S01 · 开发环境与工具链》。旧文来源:A-2922/2924/2925/2926;扩展点 E-S01-035/036/037。原文为 2023–2024 版本快照,具体版本号属待核。