必须安装JDK而非JRE,正确配置JAVA_HOME指向JDK根目录并将其bin加入PATH,通过java -version和javac -version验证版本一致,IDE需手动指定SDK避免缓存干扰。

确认已安装 JDK 而非仅 JRE
很多初学者下载的是 JRE(Java 运行环境),但开发必须用 JDK(Java 开发工具包)。JRE 不含 javac 编译器,运行 javac -version 会报错 command not found 或 'javac' is not recognized。
- 去 Eclipse Temurin 或 Oracle 官网 下载最新 LTS 版
JDK(如jdk-21.0.3),别选JRE - Windows 用户安装后检查:
C:\Program Files\Eclipse Adoptium\jdk-21.0.3-hotspot\bin\javac.exe
是否存在 -
macOS/Linux 用户建议用
SDKMAN!管理多个 JDK 版本:curl -s "https://get.sdkman.io" | bash
,再执行sdk install java 21.0.3-tem
正确配置 JAVA_HOME 和 PATH
JAVA_HOME 必须指向 JDK 根目录(不是 bin 子目录),否则 Maven、Gradle、IDE 会找不到编译器。
- Windows 示例(系统环境变量):
JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-21.0.3-hotspotPATH += %JAVA_HOME%\bin - macOS/Linux(在
~/.zshrc或~/.bash_profile中):export JAVA_HOME=$(/usr/libexec/java_home -v 21) export PATH=$JAVA_HOME/bin:$PATH
- 验证:终端中运行
echo $JAVA_HOME和which javac,二者路径应能对应上
选择轻量 IDE 或跳过 IDE 直接用命令行
新手常误以为必须装 IntelliJ IDEA 或 Eclipse 才能写 Java,其实用记事本 + 终端就能完成全部开发流程。
- 最小可行验证步骤:
mkdir hello && cd hello echo 'public class Hello { public static void main(String[] args) { System.out.println("OK"); } }' > Hello.java javac Hello.java java Hello - 如果想用 IDE,推荐
VS Code+Extension Pack for Java插件组合,启动快、无臃肿功能干扰 - 避免直接装
NetBeans或旧版Eclipse:它们自带捆绑 JDK,容易和系统环境变量冲突,导致javac版本与java版本不一致
验证环境是否真可用:绕开 IDE 缓存陷阱
IDE 常缓存旧的 JDK 配置,即使你改了系统变量,它仍可能用内置 JRE 运行程序,造成“明明配好了却报错”的假象。
立即学习“Java免费学习笔记(深入)”;
- 关掉所有 IDE,重启终端,执行:
java -version javac -version java -cp . Hello
(确保当前目录有Hello.class) - 若
java -version和javac -version输出主版本号不同(如一个是 17,一个是 21),说明PATH混入了其他 JDK 的bin - IDE 内部务必手动指定
Project SDK(IntelliJ)或Java Runtime(VS Code 设置里的java.configuration.runtimes),不能依赖自动探测
JAVA_HOME 指向了 JRE 目录、PATH 里混了多个 JDK 的 bin、或者 IDE 没刷新 SDK 列表。这些地方一旦错位,错误信息往往不直接提示根源,而是表现为编译失败、类找不到、甚至中文乱码。










