Java 环境配置详细教程
以下教程主要针对 Windows、macOS、Linux(Ubuntu/Debian/CentOS)三种主流操作系统,推荐当前的配置方式。
目前推荐的 Java 版本组合
| 使用场景 | 强烈推荐版本 | LTS 状态 | 备注与下载渠道 |
|---|---|---|---|
| 新项目 / 企业主流 | Java 21 | LTS(长期支持) | 目前最推荐的长期稳定版本 |
详细介绍 Windows、macOS 和 Linux 系统下的 Java 环境配置流程。内容包括 JDK 下载渠道推荐(如 Temurin)、各平台环境变量设置方法、多版本管理工具 SDKMAN 的使用以及常见问题的排查方案。建议新项目采用 Java 21 LTS 版本,并提供 Hello World 验证示例。
以下教程主要针对 Windows、macOS、Linux(Ubuntu/Debian/CentOS)三种主流操作系统,推荐当前的配置方式。
| 使用场景 | 强烈推荐版本 | LTS 状态 | 备注与下载渠道 |
|---|---|---|---|
| 新项目 / 企业主流 | Java 21 | LTS(长期支持) | 目前最推荐的长期稳定版本 |
| 兼容性要求极高 | Java 17 | LTS | 仍然大量企业在用,生态最成熟 |
| 追求最新特性 | Java 23 / 24(非LTS) | 非LTS | 短期实验、新语法尝鲜用 |
| 极老项目维护 | Java 8 / 11 | 已过时/部分支持 | 尽量避免新项目使用 |
建议: 新项目直接用 Java 21(LTS + 虚拟线程 + 结构化并发 + 记录模式匹配等特性已非常成熟)
| 发行版 | 是否免费商用 | 推荐场景 | 官网下载链接 |
|---|---|---|---|
| Temurin (Eclipse Adoptium) | 完全免费商用 | 最推荐(稳定性高、更新快) | https://adoptium.net/ |
| Oracle JDK | 免费开发,商用需订阅 | 官方原版,需要登录 | https://www.oracle.com/java/technologies/downloads/ |
| Zulu (Azul) | 完全免费商用 | 老项目兼容性好 | https://www.azul.com/downloads/ |
| Amazon Corretto | 完全免费商用 | AWS 用户首选 | https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/downloads-list.html |
| GraalVM | 免费商用 | 需要 Native Image / Polyglot | https://www.graalvm.org/downloads/ |
最推荐组合:Temurin 21(免费、社区活跃、跨平台一致性最好)
.msi 或 .zip推荐下载 .msi 安装包(自动配置环境变量更方便)
C:\Program Files\Eclipse Adoptium\jdk-21.x.x.x-hotspot方式一:图形界面(推荐新手)
JAVA_HOMEC:\Program Files\Eclipse Adoptium\jdk-21.x.x.x-hotspot(你的实际路径)%JAVA_HOME%\bin方式二:命令行一键设置(管理员 PowerShell)
# 假设安装路径是 C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot
$jdkPath = "C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot"
[Environment]::SetEnvironmentVariable("JAVA_HOME",$jdkPath,"Machine")
$oldPath = [Environment]::GetEnvironmentVariable("Path","Machine")
$newPath = "$oldPath;$jdkPath\bin"
[Environment]::SetEnvironmentVariable("Path",$newPath,"Machine")
打开 cmd 或 PowerShell,输入以下命令:
java -version
javac -version
正确输出示例(Temurin 21):
openjdk version "21.0.2" 2024-01-16 LTS OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS) OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
(可选)手动设置 JAVA_ HOME
# 编辑 ~/.zshrc 或 ~/.zprofile
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
source ~/.zshrc
验证
java -version
Homebrew 会自动把 Java 加到 PATH,无需手动配置 JAVA_ HOME(但建议配置)
安装 Temurin 21
brew install --cask temurin@21
安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 1. 安装 Adoptium Temurin 21(官方源方式)
sudo apt update
sudo apt install -y wget apt-transport-https gnupg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/trusted.gpg.d/adoptium.asc
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jdk
# 2. 设置默认 Java 版本(多版本共存时)
sudo update-alternatives --config java
sudo update-alternatives --config javac
# 3. 设置 JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
当你需要同时使用 Java 8 / 11 / 17 / 21 / 23 时,使用以下工具:
SDKMAN!(最推荐,全平台)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 安装各种版本
sdk install java 21.0.2-tem
sdk install java 17.0.10-tem
sdk install java 11.0.22-tem
# 切换版本
sdk use java 21.0.2-tem
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
java 命令未找到 | Path 没加 bin 目录 | 检查环境变量 Path 是否包含 %JAVA_ HOME%\bin |
java -version 显示旧版本 | 多个 JDK 并存,系统默认错 | update-alternatives 或 sdk use |
| IDEA / VSCode 找不到 JDK | 没配置 JAVA_ HOME 或 IDE 没刷新 | IDE 设置 → SDK → Add JDK → 选择安装目录 |
| 运行时提示 UnsupportedClassVersionError | 编译版本 > 运行版本 | 统一使用相同或更新的 JDK 运行 |
| macOS ARM 芯片运行 x86 程序很慢 | 用了 x86 版 JDK | 下载 aarch64 版 Temurin |
配置好后,建议立即创建一个 HelloWorld 项目验证:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Java " + System.getProperty("java.version"));
}
}
编译运行:
javac Hello.java
java Hello
如果看到 Hello Java 21.x.x,恭喜你!Java 环境配置成功。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online