JDK 环境变量配置
环境变量配置错了,java 命令找不到、编译报错。JAVA_HOME 和 PATH 是 Java 开发的基础,理解它们的原理才能解决各种环境问题。
核心概念
| 变量 | 作用 | 示例 |
|---|---|---|
JAVA_HOME | 指向 JDK 安装目录 | C:\Program Files\Java\jdk-17 |
PATH | 包含 javac、java 等命令 | %JAVA_HOME%\bin |
CLASSPATH | JDK 5+ 不再需要手动设置 | - |
PATH 环境变量
├── C:\Windows\System32
├── %JAVA_HOME%\bin ← javac.exe、java.exe 在这里Windows 配置
图形界面:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在「系统变量」中新建 JAVA_HOME,编辑 PATH 新增 %JAVA_HOME%\bin,点击「确定」保存后重启所有终端。
命令行临时生效:
cmd
set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot
set PATH=%JAVA_HOME%\bin;%PATH%PowerShell 永久配置:
powershell
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot", "Machine")macOS 配置
bash
vim ~/.zshrc
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
source ~/.zshrc$(/usr/libexec/java_home) 自动检测系统已安装的 JDK,返回最新版本路径。升级 JDK 后无需手动修改。
Linux 配置
bash
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc验证配置
bash
echo $JAVA_HOME
which java
java -version
which javac
javac -version常见问题排查
java 命令找不到 — PATH 配置错误或未生效。用 which java 检查,echo $PATH 查看内容,临时修复:export PATH=/path/to/jdk/bin:$PATH
JAVA_HOME 为空或错误 — 未设置或指向错误路径。用 ls -la $JAVA_HOME 确认目录存在。
多个 JDK 版本冲突 — macOS 用 /usr/libexec/java_home -V 查看已安装版本,Linux 用 sudo update-alternatives --config java。
编译和运行版本不一致 — 检查 javac -version 和 java -version,确认两者来自同一 JDK。
多版本管理(SDKMAN)
bash
curl -s "https://get.sdkman.io" | bash
sdk install java 17.0.9-tem
sdk install java 21.0.2-tem
sdk use java 17.0.9-tem快速参考
| 操作系统 | JAVA_HOME 示例 |
|---|---|
| Windows | C:\Program Files\Java\jdk-17 |
| macOS | /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home |
| Linux apt | /usr/lib/jvm/java-17-openjdk-amd64 |
| Linux 手动 | /usr/lib/jvm/jdk-17 |
