应选JDK 17(LTS)或JDK 21(最新LTS),避免JDK 8;优先从Eclipse Temurin或Oracle官网下载对应系统安装包,并正确配置JAVA_HOME指向JDK根目录、Path包含%JAVA_HOME%\bin,macOS/Linux需在shell配置中export JAVA_HOME并重载,IDE需手动指定JDK路径以防继承失败。

下载JDK时该选哪个版本和安装包
现在主流用 JDK 17(LTS)或 JDK 21(最新LTS),别选 JDK 8 新项目——它已停止免费更新,且部分新框架(如 Spring Boot 3+)强制要求 JDK 17+。
去 Eclipse Temurin 或 Oracle 官网 下载,优先选 jdk-17.0.x_x64-hotspot.zip(Windows)或 .dmg(macOS);Linux 用户建议用 .tar.gz 包,避免包管理器装的 OpenJDK 缺少 jpackage 或调试符号。
Windows 上配置 JAVA_HOME 和 Path 的关键步骤
不能只把 java.exe 所在目录加进 Path,必须显式设置 JAVA_HOME 指向 JDK 根目录(不是 bin 子目录)。否则 Maven、Gradle、IDEA 会找不到 javac 或 tools.jar。
-
JAVA_HOME值示例:C:\Program Files\Eclipse Adoptium\jdk-17.0.2.9-hotspot(路径中含空格也没问题) -
Path中追加:%JAVA_HOME%\bin(用百分号引用,不是硬编码) - 配完务必重启命令行窗口,
cmd或PowerShell都要重开,旧窗口不读新变量 - 验证命令:
java -version
javac -version
echo %JAVA_HOME%
macOS / Linux 用户绕过系统自带 Java 的陷阱
macOS 自带 /usr/bin/java,但它只是代理,实际可能指向过时的 JRE;Linux 发行版常预装 openjdk-11-jre,但开发需要完整 JDK。必须用 export JAVA_HOME 覆盖默认行为。
- 查真实 JDK 路径:
/usr/libexec/java_home -V
(macOS)或update-alternatives --list java
(Ubuntu/Debian) - 在
~/.zshrc(macOS Catalina+)或~/.bashrc(Linux)末尾加:export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH - 执行
source ~/.zshrc生效,再运行which javac确认输出是$JAVA_HOME/bin/javac,不是/usr/bin/javac
IDE 启动后仍报“Cannot resolve symbol ‘String’”怎么办
这是典型环境变量没被 IDE 继承的问题,尤其常见于 macOS 从 Dock 启动 IntelliJ 或 VS Code。GUI 应用不自动加载 shell 配置里的 export。
立即学习“Java免费学习笔记(深入)”;
- IntelliJ:菜单
Help → Edit Custom VM Options…,加一行:-Didea.jdk.home=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home(路径按实际改) - VS Code:确保用终端命令
code .启动,而不是双击图标;或在settings.json中设:"java.configuration.runtimes": [{ "name": "JavaSE-17", "path": "/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home" }] - 别依赖 IDE 自动探测——它有时会选错
JRE而非JDK,手动指定根目录最稳
javac 能跑,但 IDE 就会静默失败。










