必须根据操作系统和CPU架构选择匹配的JDK版本,正确设置JAVA_HOME与PATH,验证javac可用性,并在IDE中手动指定JDK路径,确保编译器、运行时与构建工具版本一致。

JDK 必须装对版本,否则 javac 找不到、java -version 报错、IDE 识别不了 SDK——这不是配置问题,是根本没装进系统路径或装了却选错了架构(比如在 Apple Silicon Mac 上装了 x86 的 JDK)。
确认操作系统和 CPU 架构再下载 JDK
很多人卡在第一步:下了个 jdk-21_windows-x64_bin.exe,结果在 Windows ARM 设备(如 Surface Pro X)上双击失败;或者在 M2 Mac 上装了 jdk-21_macos-x64_bin.dmg,运行 java 时提示 “已损坏”,其实是不兼容。
- Windows:打开命令行执行
systeminfo | findstr /B /C:"System Type",看是x64-based PC还是ARM64-based PC -
macOS:终端运行
uname -m,输出arm64就选aarch64版本,x86_64才用x64 - Linux:运行
arch,常见输出为aarch64、x86_64或ppc64le,必须严格匹配
推荐直接去 Eclipse Temurin 下载页面,它按平台+架构分组清晰,且提供 .zip/.tar.gz 免安装包(避免 Windows MSI 安装器静默改注册表导致多版本冲突)。
设置 JAVA_HOME 和 PATH 要避开三个典型陷阱
JAVA_HOME 不是随便指向 C:\Program Files\Java\jdk-21 就完事。Windows 路径含空格、macOS 使用 /usr/libexec/java_home 自动发现、Linux 解压后权限未设——任一环节出错都会让 mvn compile 或 gradle build 报 Unable to find java command。
- Windows:用双引号包裹路径,且必须是 JDK 根目录(不含
\bin),例如set JAVA_HOME="C:\Program Files\Java\jdk-21.0.2";PATH 中追加%JAVA_HOME%\bin - macOS:不要硬编码路径,用
export JAVA_HOME=$(/usr/libexec/java_home -v 21),避免升级后失效 - Linux:解压后检查
bin/java是否有执行权限:chmod +x jdk-21.0.2/bin/java,否则java -version会报Permission denied
export JAVA_HOME=/home/user/jdk-21.0.2 export PATH=$JAVA_HOME/bin:$PATH
验证是否真可用,别只信 java -version
java -version 成功只说明运行时(JRE)就位,但开发需要编译器 javac。更关键的是:IDE(IntelliJ / VS Code)能否加载模块、Maven 能否识别 source level。
既有较为详细的PHP与MySQL基础知识介绍,也有大量针对不同应用的技术说明,并伴随了大量小而精的示例来加深读者的理解,便于通过实验来掌握知识并学会应用。令书以PHP开发者为核心,从环境搭建到系统开发,从局部技术点到项目全程把握,立体式介绍了PHP5+MySQL的技术要点以及丰富的延伸知识,可以让读者享受到提升开发能力的极速体验。
立即学习“Java免费学习笔记(深入)”;
- 运行
javac -version,输出应与java -version主版本一致(如都是 21) - 写一个最简
Hello.java:public class Hello { public static void main(String[] args) { System.out.println("OK"); } }然后执行javac Hello.java && java Hello,看到输出才算闭环 - 如果用 Maven,跑
mvn -v,检查输出里的Java version是否是你刚配的 JDK,不是系统自带的 OpenJDK 11
IDE 配置常被忽略的细节
IntelliJ 或 Eclipse 即使检测到 JAVA_HOME,也可能默认用内置 JRE 启动自身,导致项目用 JDK 21 编译,但 IDE 的构建进程仍跑在 JDK 17 上——表现为 record 关键字标红、switch 表达式语法报错。
- IntelliJ:File → Project Structure → Project → Project SDK → 点击
New… → JDK,**手动指向你解压的 JDK 目录**(不要选Bundled) - VS Code:确保安装了
Extension Pack for Java,并在settings.json中显式指定:"java.configuration.runtimes": [ { "name": "JavaSE-21", "path": "/home/user/jdk-21.0.2" } ] - Eclipse:Preferences → Java → Installed JREs → Add → Standard VM → JRE home 指向 JDK 根目录(不是
jdk-21/jre!JDK 11+ 已无独立jre子目录)
javac 在终端能用,但 IDEA 里 var 关键字飘红,或者 mvn clean compile 提示 source release 21 requires target release 21——这时候该回头检查 MAVEN_OPTS 是否覆盖了 JAVA_HOME,或 pom.xml 里 maven-compiler-plugin 的 source 和 target 是否与 JDK 版本对齐。









