Java开发环境的核心是安装JDK而非JRE,需正确配置JAVA_HOME和PATH环境变量,并确保IDE指向该JDK;javac编译.java生成.class,要求类名与文件名一致、package结构匹配路径。

Java开发环境的核心不是“安装javac”,而是安装JDK——javac 是 JDK 自带的编译器,不会单独分发或安装。
确认你下载的是JDK,不是JRE
JRE(Java Runtime Environment)只含运行时,不含 javac;JDK(Java Development Kit)才包含 javac、java、javadoc 等开发工具。常见错误是误下 JRE,导致命令行输入 javac 报错 'javac' is not recognized(Windows)或 command not found: javac(macOS/Linux)。
- 去官网下载页面(如 Eclipse Temurin 或 Oracle JDK),明确选择标有 “JDK” 的安装包(例如
jdk-21.0.3+7_hotspot,而非jre-21.0.3+7) - Windows 用户注意区分
x64和ARM64架构;Apple Silicon(M1/M2/M3)Mac 必须选aarch64版本,否则javac -version可能闪退或报Bad CPU type in executable
配置JAVA_HOME与PATH才能用javac
即使JDK安装成功,javac 也不会自动可用——必须设置系统环境变量。关键是两个变量:
-
JAVA_HOME:指向JDK根目录(不是bin子目录),例如C:\Program Files\Eclipse Adoptium\jdk-21.0.3+7-hotspot(Windows)或/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home(macOS) -
PATH:追加%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux) - Windows 用户若用 PowerShell,需重启终端才能读取新环境变量;macOS 用户若用 zsh(默认),修改的是
~/.zshrc,改完要执行source ~/.zshrc
验证方式:终端中运行 echo $JAVA_HOME(macOS/Linux)或 echo %JAVA_HOME%(Windows),再运行 javac -version。输出类似 javac 21.0.3 即成功。
立即学习“Java免费学习笔记(深入)”;
javac的基本用法与常见陷阱
javac 编译的是 .java 源文件,生成 .class 字节码,不直接运行程序——那是 java 命令干的事。
- 最简编译:
javac HelloWorld.java→ 生成HelloWorld.class;类名必须与文件名完全一致(包括大小写),且public class HelloWorld中的类名必须是HelloWorld - 指定输出目录:
javac -d out src/HelloWorld.java,把 class 文件输出到out/目录,避免源码目录被 class 文件污染 - 编译多个文件:
javac src/*.java或javac @filelist.txt(filelist.txt每行一个 .java 路径) - 容易忽略的坑:如果类在 package 中(如
package com.example;),源文件必须放在对应子目录(src/com/example/HelloWorld.java),且编译时需从src目录执行javac com/example/HelloWorld.java,否则报error: class HelloWorld is public, should be declared in a file named HelloWorld.java
IDE里不用手动调javac,但底层仍依赖它
IntelliJ IDEA、VS Code(配合 Extension Pack for Java)、Eclipse 都内置构建流程,会自动调用你系统配置好的 javac。但它们不替代 JDK 安装——如果 javac -version 在终端失败,IDE 的编译也会失败,报类似 Cannot run program "javac": CreateProcess error=2(Windows)。
- IDE 设置中通常有 “Project SDK” 或 “Java Home” 选项,应指向你安装的 JDK 根目录(即
JAVA_HOME所指路径),而不是 JRE - 某些 IDE(如 VS Code)可能缓存旧 JDK 路径,更换 JDK 后需重启 IDE 并检查设置
- Gradle/Maven 项目中,
javac版本由sourceCompatibility和本地 JDK 共同决定;若 Maven 报Unsupported class file major version 65,说明你用 JDK 21 编译,但 Maven 运行在 JDK 17 上——此时需统一 JDK 版本或升级 Maven
真正卡住人的往往不是怎么装,而是没意识到 javac 从不独立存在,它和 JAVA_HOME、package 结构、IDE 的 SDK 绑定是环环相扣的。











