环境变量名java_home必须全大写,否则工具无法识别;路径在linux/macos严格区分大小写,windows不敏感;java源文件名须与public类名完全一致。

环境变量名本身不区分大小写,但变量值里的路径和Java代码中的标识符严格区分大小写。
很多人说“JAVA_HOME写成Java_Home就报错”,其实不是变量名错了,而是路径或类名大小写出了问题。排查要分三块来看:
PATH里引用的%JAVA_HOME%\bin是否拼对了
Windows下,环境变量名如JAVA_HOME、Path、Path(注意是Path不是PATH)在系统层面不区分大小写,但你写在PATH变量里的内容——比如%JAVA_HOME%\bin——这个JAVA_HOME必须和你实际定义的变量名完全一致。
如果你新建了一个叫java_home(全小写)的变量,却在PATH里写%JAVA_HOME%\bin,系统找不到,就会导致javac命令失效。
✅ 检查方法:
- 打开命令行,执行
echo %JAVA_HOME% - 如果输出为空或报错,说明变量名写错了,或者根本没创建成功
- 再执行
set查看所有变量,找有没有java_home、Java_Home这类变体
JDK安装路径中含大小写敏感的目录名(Windows少见,macOS/Linux常见)
比如你在macOS上把JDK装在 /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home,但误写成 /library/java/...(小写l),系统就找不到。
Windows对路径大小写不敏感,所以一般不会因此报错;但macOS和Linux会,/Users/Name ≠ /users/name。
✅ 检查方法:
- 在终端或命令行中,用
ls -la $JAVA_HOME(macOS/Linux)或dir %JAVA_HOME%(Windows)确认路径真实存在 - 粘贴路径时,别手动改大小写,直接从文件管理器复制完整路径
Java源文件名与public类名大小写不一致(最常被误认为是环境变量问题)
这是新手高频踩坑点:写了public class HelloWorld,却把文件保存为helloworld.java或HelloWorld.Java。
Java编译器强制要求:public类名必须与文件名逐字符一致(包括大小写),否则报错:错误: 类 HelloWorld 是公共的, 应在名为 HelloWorld.java 的文件中声明
✅ 检查方法:
- 用记事本或IDE打开文件,看左上角标题栏显示的完整文件名(含扩展名)
- 在资源管理器中开启“显示文件扩展名”,确认不是
HelloWorld.java.txt - 文件名必须是
HelloWorld.java,不能是helloworld.java、HELLOWORLD.java或HelloWorld.JAVA
一句话总结:环境变量名写错大小写极少导致失败,真正要盯紧的是变量值里的路径拼写、系统对路径大小写的实际处理规则,以及Java语言自身对类名/文件名的大小写硬性要求。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











