JAVA_HOME必须指向JDK根目录(如C:\Program Files\Java\jdk1.6.0_45),而非JRE或bin子目录;PATH需前置%JAVA_HOME%\bin;CLASSPATH通常无需设置;源文件编码须用-javac -encoding显式指定。
JAVA_HOME 必须指向 JDK 根目录,不是 jre 或 bin
Java 1.6 的 JAVA_HOME 如果设成 C:\Program Files\Java\jre6 或 ...\jdk1.6.0_45\bin,后续所有依赖该变量的工具(如 Tomcat、Ant)都会启动失败,报 java.lang.NoClassDefFoundError: java/lang/Object 或直接提示 “找不到 java 命令”。
正确路径是 JDK 解压/安装后的顶层目录,例如:C:\Program Files\Java\jdk1.6.0_45 —— 这个目录下必须包含 bin、jre、lib 子目录。
- 不要带尾部反斜杠(
\),Windows 下JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45\会导致部分脚本解析异常 - 路径含空格时无需引号,但需确保系统环境变量值未被意外截断(建议用右键“属性”→“高级”→“环境变量”图形界面设置,避免命令行
setx截断问题) - 验证方式:在新打开的 CMD 中执行
%JAVA_HOME%\bin\java -version,应输出java version "1.6.0_45"
PATH 中必须显式添加 %JAVA_HOME%\bin,不能只靠 jre 的 java.exe
仅把 JRE 的 bin 加入 PATH(比如 C:\Windows\System32 附近放了个旧版 java.exe),会导致 javac 不可用、keytool 找不到、Maven 编译报错 Cannot run program "javac": CreateProcess error=2。
Java 1.6 开发必须用 JDK 自带的工具链,所以 PATH 里要明确前置:%JAVA_HOME%\bin。