
Java环境变量名必须全大写吗
必须全大写,JAVA_HOME、PATH 这类环境变量在 Windows 和 Linux/macOS 上都区分大小写,但系统约定俗成只认大写形式。小写或混合大小写(如 java_home 或 Java_Home)会导致绝大多数工具(javac、Maven、IDEA、Spring Boot CLI)完全无法识别。
Windows 下 JAVA_HOME 大小写错误的典型表现
常见错误现象:mvn compile 报错 The JAVA_HOME environment variable is not defined correctly;IntelliJ 提示 “No JDK specified” 即使已安装;java -version 可用但 javac 找不到。
-
JAVA_HOME必须是全大写,且不能带空格或中文路径(即使路径本身合法) - 值末尾不要加反斜杠(
\),Windows 会把C:\Program Files\Java\jdk-17.0.1\解析为无效路径 - 如果 JDK 装在
C:\Program Files\...,务必用短路径(C:\Progra~1\...)或改用无空格路径(如C:\dev\jdk-17)
Linux/macOS 中 JAVA_HOME 的大小写与 shell 差异
bash/zsh 默认严格区分大小写,java_home 和 JAVA_HOME 是两个不同变量;但部分脚本(如 Maven 的 mvn 启动脚本)只检查 JAVA_HOME,忽略 java.home 等 JVM 属性。
- 在
~/.bashrc或/etc/profile中必须写export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 -
source ~/.bashrc后用echo $JAVA_HOME验证,不是echo $java_home - 某些 Docker 基础镜像(如
eclipse-jdk8)预设了JAVA_HOME,覆盖时务必用相同大小写
PATH 里引用 JAVA_HOME 时大小写要一致
很多人配对了 JAVA_HOME,却在 PATH 里写错变量名,导致 java、javac 仍不可用。
立即学习“Java免费学习笔记(深入)”;
- Windows:PATH 中应包含
%JAVA_HOME%\bin,不是%java_home%\bin - Linux/macOS:PATH 应写
$JAVA_HOME/bin,不是$java_home/bin或${JAVA_HOME}/bin(花括号非必需,但大小写错就失效) - 修改后务必新开终端验证:
which java输出应含bin,且readlink -f $(which javac)指向JAVA_HOME下的 bin 目录










