Java 完全指南 / 02 - 环境搭建:JDK 安装、Maven/Gradle、IDE 配置
02 - 环境搭建:JDK 安装、Maven/Gradle、IDE 配置
JDK 安装
选择 JDK 发行版
| 发行版 | 维护方 | 许可证 | 特点 |
|---|---|---|---|
| Oracle JDK | Oracle | 商用收费 | 官方版本,商用需付费 |
| Eclipse Temurin | Adoptium | GPLv2+CPE | 最流行的免费发行版 |
| Amazon Corretto | Amazon | GPLv2+CPE | AWS 优化,长期支持 |
| Azul Zulu | Azul | GPLv2+CPE | 多平台,付费支持可选 |
| GraalVM CE | Oracle | GPLv2 | 支持原生编译 |
💡 推荐使用 Eclipse Temurin(原 AdoptOpenJDK),免费且社区活跃。
Linux 安装
# ---- Ubuntu / Debian ----
# 方式一:apt 安装
sudo apt update
sudo apt install openjdk-21-jdk
# 方式二:SDKMAN!(推荐,管理多版本)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java # 查看可用版本
sdk install java 21.0.2-tem # 安装 Eclipse Temurin 21
# 方式三:手动安装
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz
sudo tar -xzf OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz -C /usr/local/
macOS 安装
# 使用 Homebrew(推荐)
brew install openjdk@21
# 链接到系统路径
sudo ln -sfn $(brew --prefix openjdk@21)/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk-21.jdk
# 使用 SDKMAN!
curl -s "https://get.sdkman.io" | bash
sdk install java 21.0.2-tem
Windows 安装
# 方式一:winget(推荐)
winget install EclipseAdoptium.Temurin.21.JDK
# 方式二:手动下载安装
# 访问 https://adoptium.net/ 下载 .msi 安装包
# 方式三:Chocolatey
choco install temurin21
配置环境变量
# ~/.bashrc 或 ~/.zshrc
export JAVA_HOME=/usr/local/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.
# 验证安装
java -version
javac -version
echo $JAVA_HOME
# Windows PowerShell
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Eclipse Adoptium\jdk-21", "User")
[Environment]::SetEnvironmentVariable("Path", "$env:JAVA_HOME\bin;$env:Path", "User")
验证输出:
openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
Maven 安装与配置
安装
# Linux / macOS
sdk install maven # SDKMAN!
brew install maven # Homebrew
# Windows
winget install Apache.Maven
choco install maven
配置 ~/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0
https://maven.apache.org/xsd/settings-1.2.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>${user.home}/.m2/repository</localRepository>
<!-- 阿里云镜像(国内加速) -->
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven Mirror</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 默认 Profile -->
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
</profiles>
</settings>
创建 Maven 项目
# 使用 archetype 创建项目
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
# 项目结构
my-app/
├── pom.xml
└── src
├── main/java/com/example/App.java
└── test/java/com/example/AppTest.java
Maven 常用命令
| 命令 | 说明 |
|---|---|
mvn clean | 清理 target 目录 |
mvn compile | 编译主代码 |
mvn test | 运行测试 |
mvn package | 打包(JAR/WAR) |
mvn install | 安装到本地仓库 |
mvn deploy | 部署到远程仓库 |
mvn dependency:tree | 查看依赖树 |
mvn versions:display-dependency-updates | 检查依赖更新 |
Gradle 安装与配置
安装
# Linux / macOS
sdk install gradle
brew install gradle
# Windows
winget install Gradle.Gradle
Gradle Wrapper(推荐)
# 在项目中生成 wrapper(团队统一版本)
gradle wrapper --gradle-version 8.7
# 使用 wrapper 构建(无需全局安装 Gradle)
./gradlew build
./gradlew test
./gradlew run
创建 Gradle 项目
# 交互式创建
gradle init
# 选项:
# 1. Application(可执行应用)
# 2. Library(库)
# 3. Gradle plugin
# 4. Basic(空项目)
生成的 build.gradle:
plugins {
id 'java'
id 'application'
}
group = 'com.example'
version = '1.0.0'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'com.google.guava:guava:33.0.0-jre'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.2'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
application {
mainClass = 'com.example.App'
}
tasks.named('test') {
useJUnitPlatform()
}
Maven vs Gradle 对比
| 维度 | Maven | Gradle |
|---|---|---|
| 构建脚本 | XML(pom.xml) | Groovy/Kotlin DSL |
| 速度 | 较慢 | 快(增量编译、构建缓存) |
| 灵活性 | 约定优于配置 | 高度灵活 |
| 学习曲线 | 低 | 中等 |
| 市场份额 | ~60% | ~40%(上升趋势) |
| 大型项目 | 适合 | 更适合 |
| Android | 不支持 | 官方构建工具 |
💡 新项目推荐 Gradle,老项目或企业项目很多仍使用 Maven。
IDE 配置
IntelliJ IDEA(强烈推荐)
下载安装:
- 社区版(免费):https://www.jetbrains.com/idea/download/
- 终极版(付费,学生免费)
关键设置:
- 配置 JDK:
File → Project Structure → SDKs → + → Add JDK - 配置 Maven:
Settings → Build → Build Tools → Maven → Maven home path - 推荐插件:
| 插件 | 用途 |
|---|---|
| Lombok | 减少样板代码 |
| MyBatisX | MyBatis SQL 映射跳转 |
| SonarLint | 代码质量检查 |
| Key Promoter X | 快捷键学习 |
| .ignore | Git 忽略文件模板 |
| Rainbow Brackets | 彩色括号 |
VS Code
必备扩展:
{
"recommendations": [
"vscjava.vscode-java-pack",
"vscjava.vscode-maven",
"vscjava.vscode-gradle",
"vmware.vscode-spring-boot",
"vscjava.vscode-spring-initializr"
]
}
settings.json Java 配置
{
"java.jdt.ls.java.home": "/usr/local/jdk-21",
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/usr/local/jdk-17",
"default": false
},
{
"name": "JavaSE-21",
"path": "/usr/local/jdk-21",
"default": true
}
],
"java.compile.nullAnalysis.mode": "automatic",
"maven.executable.path": "/usr/local/bin/mvn"
}
验证完整环境
创建验证脚本 check-env.sh:
#!/bin/bash
echo "========== Java 环境检查 =========="
# 检查 Java
if command -v java &> /dev/null; then
echo "✅ Java: $(java -version 2>&1 | head -1)"
echo " JAVA_HOME: $JAVA_HOME"
else
echo "❌ Java 未安装"
fi
# 检查 javac
if command -v javac &> /dev/null; then
echo "✅ javac: $(javac -version 2>&1)"
else
echo "❌ javac 未安装"
fi
# 检查 Maven
if command -v mvn &> /dev/null; then
echo "✅ Maven: $(mvn -version 2>&1 | head -1)"
else
echo "⚠️ Maven 未安装(可选)"
fi
# 检查 Gradle
if command -v gradle &> /dev/null; then
echo "✅ Gradle: $(gradle -version 2>&1 | head -3 | tail -1)"
else
echo "⚠️ Gradle 未安装(可选)"
fi
echo "====================================="
⚠️ 注意事项
- 不要使用过旧的 JDK 版本 — JDK 8 已经 10 年了,缺少大量现代特性,新项目应使用 JDK 17+。
- JAVA_HOME 路径不要包含空格或中文 — 可能导致构建工具异常。
- 注意 PATH 优先级 — 多个 JDK 版本时,确保
echo $JAVA_HOME/bin/java和which java指向一致。 - Maven 本地仓库可能占用大量磁盘 — 定期清理:
mvn dependency:purge-local-repository。
🏢 业务场景
- 团队协作: 使用
.sdkmanrc或 Maven Toolchains 统一团队 JDK 版本,避免 “在我机器上能跑” 问题。 - CI/CD: GitHub Actions / GitLab CI 中使用
actions/setup-java自动配置 JDK 和 Maven 缓存,加速构建。 - 多模块项目: 企业项目通常包含数十个模块,Gradle 的构建缓存和增量编译可将构建时间从 10 分钟缩短到 2 分钟。