JDK安装与配置

JDK、JRE、JVM 三者的关系

先搞清楚这三个缩写,不然后面配环境会迷糊

1
2
3
4
5
6
7
8
9
10
11
12
┌─────────────────────────────────────────┐
JDK(Java Development Kit)开发工具包 │
│ ┌─────────────────────────────────────┐ │
│ │ JRE(Java Runtime Environment)运行环境│
│ │ ┌─────────────────────────────────┐ │ │
│ │ │ JVM(Java Virtual Machine)虚拟机│ │ │
│ │ │ 负责执行字节码 │ │ │
│ │ └─────────────────────────────────┘ │ │
│ │ + 核心类库(rt.jar等) │ │
│ └─────────────────────────────────────┘ │
│ + 开发工具(javac编译器、jdb调试器等)
└─────────────────────────────────────────┘
名称 全称 干什么的 谁需要装
JVM Java Virtual Machine 执行Java字节码的虚拟机 被包含在JRE里,不用单独装
JRE Java Runtime Environment 运行Java程序的环境(JVM + 核心类库) 只想Java程序的人
JDK Java Development Kit 开发Java程序的工具包(JRE + 编译器等工具) Java程序的人(就是你)

一句话:JDK 包含 JRE,JRE 包含 JVM。开发者装 JDK 就够了,JRE 和 JVM 都带着

JDK版本怎么选?

LTS(Long Term Support)长期支持版本:生产环境首选

版本 发布年份 LTS 说明
Java 8 2014 至今最广泛使用的版本,大量老项目还在用
Java 11 2018 第二主流版本
Java 17 2021 Spring Boot 3.x 最低要求
Java 21 2023 最新LTS

建议

学习阶段:装 Java 17Java 21,新特性全有,兼容性也好

公司项目:跟着项目走,项目用Java 8就装Java 8

可以装多个版本,后面教怎么切换

Oracle JDK vs OpenJDK

Oracle JDK:Oracle公司发行,商业使用可能要付费

OpenJDK:开源免费,功能和Oracle JDK基本一致

推荐用 OpenJDK 的发行版:如 Eclipse Temurin(Adoptium)、Amazon Corretto、Azul Zulu

macOS 安装 JDK

方法1:Homebrew(推荐,最简单)

1
2
3
4
5
6
7
8
9
10
11
12
# 安装 Homebrew(如果没装过)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 JDK 17(Eclipse Temurin 发行版)
brew install --cask temurin@17

# 或者安装 JDK 21
brew install --cask temurin@21

# 验证安装
java -version
javac -version

方法2:手动下载安装

https://adoptium.net/ 下载对应版本的 .pkg 安装包

双击安装,一路下一步

查看已安装的JDK

1
2
# macOS 自带命令,列出所有已安装的JDK
/usr/libexec/java_home -V

环境变量配置

什么是环境变量?

就是告诉操作系统”某个工具装在哪里”,这样你在任何目录下输命令都能找到它

比如你输 java -version,系统怎么知道 java 在哪?就是通过环境变量 PATH 找的

JAVA_HOME

指向JDK的安装目录,很多工具(Maven、IDEA、Tomcat)都会读这个变量

1
2
3
4
5
# 查看当前 JAVA_HOME
echo $JAVA_HOME

# 查看JDK安装位置(macOS)
/usr/libexec/java_home -V

配置步骤(macOS zsh)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 打开配置文件
vim ~/.zshrc

# 添加以下内容(路径根据实际安装位置调整)
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

# 保存退出后,让配置生效
source ~/.zshrc

# 验证
echo $JAVA_HOME
java -version
javac -version

多版本切换

1
2
3
4
5
6
7
8
# 在 ~/.zshrc 中添加快捷切换命令
alias java8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'
alias java17='export JAVA_HOME=$(/usr/libexec/java_home -v 17)'
alias java21='export JAVA_HOME=$(/usr/libexec/java_home -v 21)'

# 使用时直接输入
java17 # 切到JDK 17
java -version # 验证

JDK目录结构(了解即可)

1
2
3
4
5
6
7
8
9
10
11
JDK安装目录/
├── bin/ ← 可执行工具
│ ├── java ← 运行Java程序(JVM启动器)
│ ├── javac ← 编译.java → .class
│ ├── jar ← 打包工具
│ ├── jdb ← 调试工具
│ ├── jps ← 查看Java进程
│ └── ...
├── lib/ ← JDK内部库
├── include/ ← C/C++头文件(JNI用,不用管)
└── conf/ ← 配置文件

日常最常用的两个命令:

javac Hello.java — 把源码编译成字节码(.class文件)

java Hello — 运行字节码(JVM加载并执行)

这就是 [hello world](/2026/04/04/hello world/) 中代码运行的底层过程:

1
2
Hello.java  →(javac编译)→  Hello.class  →(java运行)→  控制台输出
源代码(人看) 字节码(JVM看) "Hello and welcome!"

常见问题排查

java -version 无输出或报错

PATH没配对,检查 echo $PATH 里有没有JDK的bin目录

javac 找不到但 java 能用

可能装的是JRE不是JDK,重新安装JDK

版本不对

装了多个JDK,JAVA_HOME指向了错误的版本

/usr/libexec/java_home -V 查看所有版本,重新设置JAVA_HOME

IDEA里的JDK和命令行不一样

IDEA有自己的JDK配置(File → Project Structure → SDK),不一定跟命令行一致

可以在IDEA里手动指定JDK路径,参考 IDE使用(IDEA)


上一章 目录 下一章
java基础 IDE使用(IDEA)