JAVA_HOME必须指向JDK根目录(含bin、lib、jre子目录),不可为bin或jre路径;需用echo、ls/dir和javac -version等命令验证路径存在、可访问且版本一致。

避免路径拼写错误,关键在于不依赖肉眼检查,而是用系统命令验证路径是否存在、是否可访问关键文件。很多问题不是“设没设”,而是“设对没设”。
JAVA_HOME 必须指向 JDK 根目录,不能带 bin 或 jre
这是最常踩的坑。JDK 安装后,根目录下应有 bin、lib、jre 等子文件夹。路径末尾不能是 \bin 或 \jre。
- ✅ 正确:
C:\jdk-17或/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home - ❌ 错误:
C:\jdk-17\bin(javac 找不到 tools.jar) - ❌ 错误:
C:\Program Files\Java\jre-17(没有 javac,不是 JDK)
路径中慎用空格、中文和特殊字符
Windows 默认装在 Program Files,含空格;macOS/Linux 中文路径或括号也容易导致脚本解析失败。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 推荐安装时手动指定纯英文无空格路径,例如:
C:\jdk-17、/opt/jdk-17 - 已装在含空格路径的,不要在环境变量里硬写
C:\Program Files\...;改用%JAVA_HOME%\bin引用方式,并确保 JAVA_HOME 值本身不含多余空格 - 避免全角符号、中文、括号(如
())、& 等,部分构建工具(如 Maven、Gradle)不兼容
斜杠方向与大小写必须匹配系统习惯
Windows 用反斜杠 \,macOS/Linux 用正斜杠 /;后者还严格区分大小写。
立即学习“Java免费学习笔记(深入)”;
- Windows 中写成
%JAVA_HOME%/bin(用了 /)→ 不识别 - macOS 中写成
/library/java/...(小写 l)→ 找不到目录 - 复制路径时注意结尾多了一个
\或/,虽然多数情况不影响,但某些 shell 脚本会报错
用命令行直接验证,别只看设置界面
设置完别急着关窗口,打开新终端立刻验证:
- Windows:
echo %JAVA_HOME%
dir "%JAVA_HOME%\bin\javac.exe"
如果第二行提示“找不到文件”,说明路径不对或 javac.exe 不存在 - macOS/Linux:
echo $JAVA_HOME
ls -l $JAVA_HOME/bin/javac
检查输出是否为可执行文件,权限是否为-rwxr-xr-x - 再统一运行:
java -version
javac -version
两个命令必须都成功,且版本号一致

















