JDK 安装配置详细指南(推荐 JDK 17+)
📦 JDK 版本选择建议
| JDK 版本 | 状态 | 推荐用途 |
|---|---|---|
| JDK 17 | LTS(长期支持) | 企业生产环境首选 |
| JDK 21 | LTS(最新) | 新技术尝鲜,学习新特性 |
| JDK 11 | LTS | 老系统维护(逐渐迁移到17) |
| JDK 8 | 维护中 | 传统企业应用(尽快升级) |
建议初学者选择 JDK 17:平衡了新特性和稳定性
🖥️ Windows 系统安装
方法一:手动安装(推荐)
1. 下载 JDK
- Oracle JDK (需注册账号):
Oracle官网 - OpenJDK (开源免费,推荐):
推荐使用 Adoptium Eclipse Temurin JDK 17
2. 安装步骤
bash
# 1. 下载 Windows x64 Installer (.msi)
# 2. 双击运行,按向导安装
# 3. 建议安装路径(避免空格和中文):
# C:\dev\java\jdk-17
# 4. 安装过程中会自动设置JAVA_HOME环境变量
3. 手动配置环境变量(如果.msi安装没自动配置)
bash
# 1. 右键"此电脑" → "属性" → "高级系统设置"
# 2. "环境变量" → 系统变量 → 新建
# 新建 JAVA_HOME(如果不存在)
变量名:JAVA_HOME
变量值:C:\dev\java\jdk-17
# 3. 编辑 Path 变量
# 添加:%JAVA_HOME%\bin
# (最好放在最前面)
方法二:使用包管理器(推荐开发者)
powershell
# 1. 安装 Chocolatey(Windows 包管理器)
# 以管理员打开 PowerShell,运行:
Set-ExecutionPolicy Bypass -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 2. 使用 Chocolatey 安装 JDK
choco install temurin17 -y
# 或安装多个版本
choco install temurin11 temurin17 temurin21 -y
方法三:使用 Scoop
powershell
# 1. 安装 Scoop
irm get.scoop.sh | iex
# 2. 安装 JDK
scoop bucket add java
scoop install temurin17-jdk
🍎 macOS 系统安装
方法一:使用 Homebrew(推荐)
bash
# 1. 安装 Homebrew(如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. 安装 JDK 17
brew install openjdk@17
# 3. 配置环境变量
# 对于 Intel Mac,添加到 ~/.zshrc 或 ~/.bash_profile
echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
echo 'export JAVA_HOME="/usr/local/opt/openjdk@17"' >> ~/.zshrc
# 对于 Apple Silicon (M1/M2) Mac
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
echo 'export JAVA_HOME="/opt/homebrew/opt/openjdk@17"' >> ~/.zshrc
# 4. 使配置生效
source ~/.zshrc
方法二:手动下载安装
bash
# 1. 下载 macOS .pkg 安装包
# 2. 双击安装
# 3. JDK 通常安装在:
# Intel Mac: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
# M1/M2 Mac: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
方法三:使用 jEnv 管理多版本(高级)
bash
# 1. 安装 jEnv
brew install jenv
# 2. 配置 shell
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
# 3. 添加 JDK
jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
# 4. 设置全局版本
jenv global 17
# 或在特定目录设置本地版本
jenv local 17
🐧 Linux 系统安装
Ubuntu/Debian 系统
bash
# 方法一:使用 apt(OpenJDK)
# 1. 更新包列表
sudo apt update
# 2. 安装 JDK 17
sudo apt install openjdk-17-jdk -y
# 3. 验证安装
java -version
# 4. 设置默认版本(如果安装了多个)
sudo update-alternatives --config java
CentOS/RHEL/Fedora
bash
# 方法一:使用 yum/dnf
# 1. CentOS/RHEL 7/8
sudo yum install java-17-openjdk-devel
# 2. Fedora / CentOS Stream / RHEL 9
sudo dnf install java-17-openjdk-devel
# 方法二:手动安装(任何 Linux 发行版)
# 1. 下载 .tar.gz 压缩包
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.9%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz
# 2. 解压到 /opt
sudo tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.9_9.tar.gz -C /opt
# 3. 设置环境变量
echo 'export JAVA_HOME="/opt/jdk-17.0.9+9"' >> ~/.bashrc
echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.bashrc
# 4. 使配置生效
source ~/.bashrc
使用 SDKMAN(推荐 Linux/macOS)
bash
# 1. 安装 SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 2. 列出可用 JDK 版本
sdk list java
# 3. 安装 JDK 17
sdk install java 17.0.9-tem
# 4. 切换版本
sdk use java 17.0.9-tem
# 或设置为默认
sdk default java 17.0.9-tem
🔧 验证安装
基本验证命令
bash
# 1. 检查 Java 版本
java -version
# 输出示例:
# openjdk version "17.0.9" 2023-10-17
# OpenJDK Runtime Environment Temurin-17.0.9+9 (build 17.0.9+9)
# OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (build 17.0.9+9, mixed mode, sharing)
# 2. 检查 Java 编译器
javac -version
# javac 17.0.9
# 3. 检查安装路径
echo $JAVA_HOME # Linux/macOS
echo %JAVA_HOME% # Windows cmd
$env:JAVA_HOME # Windows PowerShell
创建测试程序验证
java
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("JDK 安装成功!");
System.out.println("Java 版本: " + System.getProperty("java.version"));
System.out.println("JAVA_HOME: " + System.getProperty("java.home"));
}
}
编译和运行:
bash
# 1. 编译
javac HelloWorld.java
# 2. 运行
java HelloWorld
# 输出:
# JDK 安装成功!
# Java 版本: 17.0.9
# JAVA_HOME: C:\dev\java\jdk-17
⚙️ 配置优化
1. 设置 Maven 使用指定 JDK
xml
<!-- settings.xml 中添加 -->
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
</profile>
2. 配置 IDE 使用 JDK 17
IntelliJ IDEA
bash
# File → Project Structure → SDKs
# 点击 "+" → Add JDK
# 选择 JDK 17 安装目录
# 设置项目语言级别为 17
Eclipse
bash
# Window → Preferences → Java → Installed JREs
# 点击 Add → Standard VM
# 选择 JDK 17 安装目录
VS Code
json
// settings.json
{
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "C:\\dev\\java\\jdk-17",
"default": true
}
],
"java.jdt.ls.java.home": "C:\\dev\\java\\jdk-17"
}
3. 常用环境变量配置
bash
# Windows (PowerShell)
$env:JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF-8"
$env:MAVEN_OPTS = "-Xmx1024m -XX:MaxPermSize=256m"
# Linux/macOS
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
🔄 多版本 JDK 管理
Windows:使用 PowerShell 脚本切换
powershell
# switch-jdk.ps1
param([string]$version)
$javaHome = switch ($version) {
"8" { "C:\dev\java\jdk-8" }
"11" { "C:\dev\java\jdk-11" }
"17" { "C:\dev\java\jdk-17" }
"21" { "C:\dev\java\jdk-21" }
default { "C:\dev\java\jdk-17" }
}
# 设置用户环境变量
[Environment]::SetEnvironmentVariable("JAVA_HOME", $javaHome, "User")
[Environment]::SetEnvironmentVariable("Path",
"$javaHome\bin;" +
[Environment]::GetEnvironmentVariable("Path", "User") -replace
"C:\\dev\\java\\jdk-\d+\\bin;?", ""),
"User")
Write-Host "已切换到 JDK $version"
macOS/Linux:使用 update-alternatives
bash
# 1. 注册多个 JDK
sudo update-alternatives --install /usr/bin/java java /opt/jdk-17.0.9+9/bin/java 1
sudo update-alternatives --install /usr/bin/java java /opt/jdk-11.0.20+8/bin/java 2
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-17.0.9+9/bin/javac 1
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk-11.0.20+8/bin/javac 2
# 2. 切换版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
🐛 常见问题解决
1. "java"不是内部或外部命令
bash
# 原因:Path 环境变量配置错误
# 解决:
# 1. 检查 JAVA_HOME 是否正确设置
# 2. 确保 Path 中有 %JAVA_HOME%\bin(Windows)
# 3. 重启命令行或终端
# 4. 或使用绝对路径:C:\dev\java\jdk-17\bin\java -version
2. 版本混乱问题
bash
# 查看所有 java 可执行文件位置
# Windows:
where java
# Linux/macOS:
which -a java
# 删除不需要的版本或调整 Path 顺序
3. 权限问题(Linux/macOS)
bash
# 确保 .tar.gz 解压后文件有执行权限
sudo chmod -R 755 /opt/jdk-17.0.9+9
# 确保当前用户有访问权限
sudo chown -R $USER:$USER /opt/jdk-17.0.9+9
4. IDE 找不到 JDK
bash
# 1. 检查 IDE 配置的 JDK 路径
# 2. 确保路径没有空格和中文
# 3. 重新导入或重新配置 JDK
📊 JDK 17 新特性快速了解
java
// 1. 文本块(Java 13 引入,Java 15 正式)
String json = """
{
"name": "张三",
"age": 25,
"city": "北京"
}
""";
// 2. Switch 表达式增强
String dayType = switch (day) {
case MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY -> "工作日";
case SATURDAY, SUNDAY -> "周末";
};
// 3. 记录类(Record Classes)
record Point(int x, int y) { }
// 4. 密封类(Sealed Classes)
sealed interface Shape permits Circle, Rectangle, Triangle { }
// 5. 模式匹配 instanceof
if (obj instanceof String s && s.length() > 5) {
System.out.println(s.toUpperCase());
}
🎯 最终检查清单
✅ 下载并安装 JDK 17
✅ 验证 java -version 输出正确
✅ 验证 javac -version 输出正确
✅ 配置 JAVA_HOME 环境变量
✅ 将 %JAVA_HOME%\bin 或 $JAVA_HOME/bin 添加到 Path
✅ IDE 正确识别 JDK 17
✅ 能成功编译和运行 HelloWorld 程序
安装完成后,就可以开始你的 Java 学习之旅了!🎉