需确认系统架构与JDK版本匹配,正确设置JAVA_HOME和PATH并保持一致,IDE中显式指定SDK路径,避免中文/空格路径,并排查多版本干扰问题。

确认系统架构和JDK版本是否匹配
装错架构(比如在 Apple Silicon Mac 上装 x86 JDK,或在 64 位 Windows 上误用 32 位 JDK)会导致 java -version 报错或直接无法运行。OpenJDK 官方构建(如 Temurin、Eclipse Adoptium)会明确标注 aarch64(ARM64)或 x64(x86_64),下载前务必核对系统信息:
– Windows:运行 systeminfo | findstr "System Type"
– macOS:终端执行 uname -m(输出 arm64 或 x86_64)
– Linux:用 uname -p 或 arch
PATH 和 JAVA_HOME 设置顺序与值必须一致
常见错误是 JAVA_HOME 指向 C:\Program Files\Java\jdk-17.0.1,但 PATH 里却加了 C:\Program Files\Java\jdk-17.0.1\bin 以外的旧路径(比如残留的 JRE 路径),导致 java 命令调用的是老版本。
– JAVA_HOME 必须是 JDK 根目录(不含 \bin)
– PATH 中应只包含 %JAVA_HOME%\bin(Windows)或 $JAVA_HOME/bin(macOS/Linux)
– 设置完后重启终端,再运行 which java(macOS/Linux)或 where java(Windows)验证实际调用路径
– 运行 java -version 和 javac -version,两者输出版本号必须完全一致
多版本共存时避免 IDE 自动覆盖配置
IntelliJ IDEA、Eclipse 或 VS Code 的 Java 插件常会扫描系统注册表或默认路径,自动选中某个 JDK(比如 Windows 注册表里的 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit),覆盖你手动设的 JAVA_HOME。
– 在 IDE 中显式指定 Project SDK(如 IntelliJ 的 File → Project Structure → Project → Project SDK)
– 不依赖 “自动检测”,点 Add JDK… 手动选择你安装的完整路径(如 /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home)
– Maven/Gradle 构建时若仍用错版本,检查 MAVEN_OPTS 或 gradle.properties 是否硬编码了 -Dorg.gradle.java.home=...
Windows 下中文路径和空格引发的构建失败
把 JDK 安装到 C:\Program Files\Java\... 或 D:\我的开发工具\jdk-17 这类含空格或中文的路径,会导致部分构建工具(尤其是老版本 Ant、某些 Shell 脚本包装器)解析失败,报错类似:Error: Could not create the Java Virtual Machine. 或 Unrecognized option: -Dfile.encoding=UTF-8。
– 推荐安装路径使用纯英文、无空格、无符号,例如:C:\dev\jdk-17 或 D:\jdk17
– 若已装错,不要仅靠修改环境变量补救,重装更稳妥
– 检查 echo %JAVA_HOME% 输出是否带引号或意外截断
立即学习“Java免费学习笔记(深入)”;
JDK 安装本身简单,真正卡住人的几乎全是路径、权限、多版本干扰这三类问题;尤其在团队协作中,build 失败却本地能跑,大概率是某台机器的JAVA_HOME 指向了 JRE 或旧 JDK,而 CI 脚本又没做严格校验。










