【码道】系列博客致力于为广大Java学习者提供清晰、系统的学习路径。从基础语法到高级特性,从理论讲解到实战应用,我们将用简洁易懂的语言,带您循序渐进地掌握Java编程精髓。无论您是初学者还是希望巩固基础的开发者,都能在这里找到成长为Java高手的捷径。让我们一起探索编程之道,体验Java的无限魅力!
一、前言:为何需要JDK?
在正式开启Java编程之旅前,首要任务便是搭建一个稳定可靠的Java开发环境。这个环境的核心就是JDK,即Java Development Kit(Java开发工具包)。没有JDK,我们就无法编译和运行Java代码。
JDK、JRE与JVM的关系:
- JVM (Java Virtual Machine - Java虚拟机): JVM是Java实现“一次编写,到处运行”的关键。它是一个规范,定义了Java字节码如何在特定的硬件和操作系统上执行。不同的操作系统有不同的JVM实现。
- JRE (Java Runtime Environment - Java运行环境): JRE包含了JVM以及Java程序运行所必需的核心类库和支持文件。如果你只需要运行Java程序,而不是开发,那么安装JRE就足够了。
- JDK (Java Development Kit - Java开发工具包): JDK是面向Java开发者的工具包。它不仅包含了JRE的全部内容(因此也能运行Java程序),还额外提供了编译器(
javac.exe
)、调试器以及其他开发工具(如javadoc.exe
用于生成文档,jar.exe
用于打包等)。
简单来说,如果你想成为一名Java开发者,你需要安装JDK。
二、选择合适的JDK版本与发行版
在选择JDK时,你会遇到不同的版本号(如JDK 8, JDK 11, JDK 17, JDK 21等)和不同的发行版(如Oracle JDK, OpenJDK - Adoptium Temurin, Amazon Corretto, Azul Zulu等)。
- 版本号: 通常建议选择最新的LTS(Long-Term Support,长期支持)版本,因为它们会获得更长时间的更新和安全补丁。目前最新的LTS版本是JDK 25。对于初学者,紧跟最新的LTS版本是一个不错的选择。
- 发行版:
- Oracle JDK: 由Oracle官方提供,功能完整。但自JDK 11起,Oracle JDK的商业使用可能需要付费许可。
- OpenJDK: 这是Java平台的开源实现。许多组织基于OpenJDK构建自己的发行版,例如:
- Adoptium Temurin: 由Eclipse Adoptium项目提供,完全免费,社区支持,遵循GPLv2 with Classpath Exception许可,是目前非常受欢迎的选择。
- Amazon Corretto: 亚马逊提供的免费、多平台、生产就绪的OpenJDK发行版。
- Azul Zulu: Azul Systems提供的免费OpenJDK发行版。
本教程推荐使用 Adoptium Temurin,因为它开源、免费、社区活跃且跨平台。
下载地址: adoptium.net/
访问该网站,你可以选择操作系统、架构和版本(推荐选择最新的LTS版本,如21)。
三、Windows系统下的JDK安装与配置
1. 下载JDK
访问 adoptium.net/,选择:
- Operating System: Windows
- Architecture: x64 (适用于大多数现代Windows电脑)
- Package Type: JDK
- Version: 选择最新的LTS版本(例如21)
点击下载按钮,获取 .msi
安装包。
2. 安装JDK
双击下载的 .msi
文件,启动安装向导。
- 欢迎界面: 点击 "Next"。
- 许可协议: 勾选 "I accept the terms in the license agreement",点击 "Next"。
- 自定义安装 (Custom Setup):
- Installation Directory: 你可以保持默认安装路径(通常是
C:\Program Files\Eclipse Adoptium\jdk-<version>
),或者点击 "Change..." 选择一个自定义路径。建议记住或复制这个路径,后续配置环境变量时会用到。 - Optional Features:
- Add to PATH: 强烈建议勾选此项。它会自动将JDK的
bin
目录添加到系统的PATH环境变量中,这样你就可以在任何路径下使用java
和javac
命令。 - Set JAVA_HOME variable: 同样强烈建议勾选。许多Java应用程序和开发工具(如Maven, Gradle, Tomcat等)依赖于
JAVA_HOME
环境变量来找到JDK的安装位置。 - Associate .jar: 勾选此项,使得
.jar
文件默认由Java运行环境打开。
- Add to PATH: 强烈建议勾选此项。它会自动将JDK的
- 确认选项后,点击 "Next"。
- Installation Directory: 你可以保持默认安装路径(通常是
- 准备安装: 点击 "Install"。
- 安装过程: 等待安装完成。可能会弹出用户账户控制(UAC)提示,选择 "是"。
- 完成界面: 点击 "Finish"。
3. 验证环境变量(如果安装时未自动设置或需要手动调整)
如果在安装过程中没有选择自动设置环境变量,或者你想确认设置,可以按以下步骤操作:
- 右键点击 "此电脑" (或 "我的电脑"),选择 "属性"。
- 点击 "高级系统设置"。
- 在 "系统属性" 对话框中,点击 "环境变量..." 按钮。
设置 JAVA_HOME
:
- 在 "系统变量" 区域,点击 "新建..."。
- 变量名输入:
JAVA_HOME
- 变量值输入:JDK的安装路径 (例如
C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot
) - 点击 "确定"。
设置 Path
:
- 在 "系统变量" 区域,找到名为
Path
(或PATH
) 的变量,选中它,然后点击 "编辑..."。 - 在 "编辑环境变量" 对话框中,点击 "新建"。
- 输入
%JAVA_HOME%\bin
(如果你已经设置了JAVA_HOME
) 或者直接输入JDK的bin
目录的完整路径 (例如C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot\bin
)。 - 点击 "确定" 保存所有打开的对话框。
重要提示: 修改环境变量后,可能需要重启命令提示符窗口,甚至重启电脑才能使更改生效。
4. 验证安装
打开新的命令提示符 (CMD) 或 PowerShell 窗口,输入以下命令:
java -version
如果安装成功并正确配置了PATH,你应该能看到类似以下的输出:
openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode, sharing)
接着,验证编译器:
javac -version
你应该能看到类似以下的输出:
javac 21.0.1
如果两个命令都能正确显示版本信息,那么恭喜你,Windows下的JDK环境已经搭建成功!
四、macOS系统下的JDK安装与配置
1. 下载JDK
访问 adoptium.net/,选择:
- Operating System: macOS
- Architecture: x64 (适用于Intel芯片的Mac) 或 AArch64 (适用于Apple Silicon M1/M2/M3芯片的Mac)
- Package Type: JDK
- Version: 选择最新的LTS版本(例如21)
点击下载按钮,获取 .pkg
安装包。
2. 安装JDK
双击下载的 .pkg
文件,启动安装向导。
- 简介: 点击 "继续"。
- 许可证: 点击 "继续",然后点击 "同意"。
- 安装类型: 通常选择标准安装即可。你可以更改安装位置,但一般保持默认(通常是
/Library/Java/JavaVirtualMachines/temurin-<version>.jdk
)。点击 "安装"。 - 输入密码: 输入你的macOS用户密码,然后点击 "安装软件"。
- 安装过程: 等待安装完成。
- 概要: 安装成功后,点击 "关闭"。
macOS的 .pkg
安装程序通常会自动处理路径设置,JDK的命令应该可以直接在终端中使用。安装程序会将Java命令链接到 /usr/bin
。
3. 验证环境变量 (可选,通常由安装程序处理)
对于macOS,安装程序通常会很好地处理路径设置。但了解 JAVA_HOME
的设置仍然有益,因为某些第三方工具可能需要它。
要查看当前Java版本以及 JAVA_HOME
的位置,可以在终端中执行:
/usr/libexec/java_home -V
这会列出所有已安装的JDK版本及其路径。通常,最新的安装版本会被设置为默认。
如果需要手动设置 JAVA_HOME
(例如,在 .zshrc
或 .bash_profile
文件中,取决于你使用的shell):
-
打开终端。
-
确定你的shell。输入
echo $SHELL
。如果是/bin/zsh
,则编辑.zshrc
;如果是/bin/bash
,则编辑.bash_profile
。 -
使用文本编辑器打开对应的配置文件,例如:
nano ~/.zshrc
或nano ~/.bash_profile
。 -
在文件末尾添加:
export JAVA_HOME=$(/usr/libexec/java_home -v <version>) # 例如: export JAVA_HOME=$(/usr/libexec/java_home -v 21) export PATH=$JAVA_HOME/bin:$PATH
或者直接使用最新的JDK:
export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$JAVA_HOME/bin:$PATH
-
保存文件 (在nano中,按
Ctrl+O
,回车,然后Ctrl+X
)。 -
使配置生效,执行:
source ~/.zshrc
或source ~/.bash_profile
。
4. 验证安装
打开新的终端窗口,输入以下命令:
java -version
你应该能看到类似以下的输出:
openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode, sharing)
接着,验证编译器:
javac -version
你应该能看到类似以下的输出:
javac 21.0.1
如果命令执行成功,macOS下的JDK环境就绪。
备选方案:使用Homebrew安装 (macOS)
Homebrew是macOS上流行的包管理器。如果你已经安装了Homebrew,可以使用它来安装OpenJDK:
brew update
brew install openjdk@21 # 或者其他LTS版本,如 openjdk@17
Homebrew通常会自动处理符号链接和路径设置。安装完成后,它会给出一些提示,例如如何将JDK添加到PATH(如果需要手动操作的话)。通常,对于通过 brew install openjdk
安装的最新版本,它会自动链接。对于特定版本如 openjdk@21
,可能需要手动添加如下信息到你的shell配置文件 (.zshrc
或 .bash_profile
):
export PATH="/usr/local/opt/openjdk@21/bin:$PATH"
并且为了让系统知道 JAVA_HOME
,你可能还需要添加:
export CPPFLAGS="-I/usr/local/opt/openjdk@21/include"
请务必遵循brew info openjdk@21
命令给出的具体指示。
五、Linux系统下的JDK安装与配置
Linux发行版众多,安装方式略有不同,但大同小异。主要有两种方式:使用系统的包管理器或手动下载安装包。
推荐使用包管理器安装,因为它能更好地处理依赖关系和更新。
1. 使用包管理器安装
a. Debian/Ubuntu及其衍生版 (如Linux Mint)
打开终端,执行以下命令:
sudo apt update
sudo apt install openjdk-21-jdk # 安装OpenJDK 21
# 或者安装默认的稳定LTS版本(版本号可能因发行版更新而异)
# sudo apt install default-jdk
安装完成后,系统通常会自动配置好路径。你可以使用 update-alternatives
命令来管理系统上安装的多个Java版本:
sudo update-alternatives --config java
sudo update-alternatives --config javac
选择你希望作为默认版本的JDK。
b. Fedora/RHEL/CentOS及其衍生版
打开终端,执行以下命令:
Fedora:
sudo dnf install java-21-openjdk-devel # 安装OpenJDK 21
# 或者搜索可用版本
# sudo dnf search openjdk
RHEL/CentOS (可能需要启用EPEL源或使用特定仓库):
sudo yum install java-21-openjdk-devel # 根据你的系统和仓库配置,版本号可能不同
# 或者
# sudo dnf install java-latest-openjdk-devel # 如果你的源支持
与Debian/Ubuntu类似,这些系统也可能有管理多个Java版本的工具(例如 alternatives
)。
c. Arch Linux及其衍生版 (如Manjaro)
打开终端,执行以下命令:
sudo pacman -Syu
sudo pacman -S jdk-openjdk # 通常会安装社区推荐的最新稳定版
# 或者指定版本,例如:
# sudo pacman -S jdk21-openjdk
2. 手动下载安装 (.tar.gz
包)
如果你希望使用特定版本或发行版(如Adoptium Temurin),或者你的Linux发行版包管理器中没有你想要的版本,可以选择手动安装。
-
下载: 访问 adoptium.net/,选择:
- Operating System: Linux
- Architecture: x64 (适用于大多数现代Linux电脑) 或 AArch64 (适用于ARM架构)
- Package Type: JDK
- Version: 选择最新的LTS版本(例如21)
下载
.tar.gz
压缩包。
-
解压: 选择一个安装目录,例如
/usr/local/java
或/opt/java
。如果目录不存在,请先创建。sudo mkdir -p /usr/local/java # 假设下载的文件名为 temurin-21-jdk_x64_linux_hotspot_21.0.1.12.tar.gz # 并已移动到 /tmp 目录 sudo tar -xvzf /tmp/temurin-21-jdk_x64_linux_hotspot_21.0.1.12.tar.gz -C /usr/local/java/
解压后,会在
/usr/local/java/
目录下生成一个类似jdk-21.0.1+12
的文件夹。 -
配置环境变量: 编辑你的shell配置文件。对于bash,是
~/.bashrc
;对于zsh,是~/.zshrc
。你也可以在/etc/environment
中为所有用户设置全局环境变量(需要root权限,并且需要重新登录或重启才能生效)。打开配置文件,例如
nano ~/.bashrc
,在文件末尾添加:export JAVA_HOME=/usr/local/java/jdk-21.0.1+12 # 替换为你实际的JDK解压路径 export PATH=$JAVA_HOME/bin:$PATH
保存文件并执行
source ~/.bashrc
(或source ~/.zshrc
) 使配置立即生效。 -
(可选)使用
update-alternatives
(Debian/Ubuntu系): 如果你希望系统能识别这个手动安装的JDK,并方便切换,可以使用update-alternatives
:JDK_PATH=/usr/local/java/jdk-21.0.1+12 # 替换为你实际的JDK解压路径 sudo update-alternatives --install /usr/bin/java java $JDK_PATH/bin/java 100 sudo update-alternatives --install /usr/bin/javac javac $JDK_PATH/bin/javac 100 sudo update-alternatives --install /usr/bin/jar jar $JDK_PATH/bin/jar 100 # ...可以为其他JDK工具也添加,如javadoc等 # 然后配置默认版本 sudo update-alternatives --config java sudo update-alternatives --config javac
数字
100
是优先级,可以根据需要调整。
3. 验证安装 (Linux)
打开新的终端窗口,输入以下命令:
java -version
你应该能看到类似以下的输出:
openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode, sharing)
接着,验证编译器:
javac -version
你应该能看到类似以下的输出:
javac 21.0.1
六、常见问题与故障排除
-
java
或javac
命令未找到 / command not found:- 原因: JDK的
bin
目录没有正确添加到系统的PATH
环境变量中,或者环境变量修改后没有使新配置生效(如未重新打开终端窗口或重启)。 - 解决: 仔细检查
PATH
环境变量的设置,确保路径正确无误,并且包含了JDK的bin
目录。确认JAVA_HOME
设置是否正确。修改后,务必打开新的终端窗口测试。
- 原因: JDK的
-
使用了错误的Java版本:
- 原因: 系统上可能安装了多个JDK版本,当前默认的不是你期望的版本。
- 解决:
- Windows: 检查
Path
环境变量中JDK路径的顺序,确保你想要的JDK路径在其他Java路径之前。 - macOS: 使用
/usr/libexec/java_home -V
查看,并通过设置JAVA_HOME
或修改.zshrc
/.bash_profile
中的PATH顺序来调整。 - Linux: 使用
update-alternatives --config java
(Debian/Ubuntu) 或类似命令 (其他发行版) 来切换默认版本。
- Windows: 检查
-
权限问题 (Linux/macOS):
- 原因: 手动安装JDK到系统目录(如
/usr/local
)时,可能需要sudo
权限。 - 解决: 在执行需要写入系统目录的命令时(如
mkdir
,tar -C /usr/local/...
),请使用sudo
。
- 原因: 手动安装JDK到系统目录(如
-
JAVA_HOME
未设置或设置错误:- 原因: 许多Java工具依赖
JAVA_HOME
来定位JDK。 - 解决: 确保
JAVA_HOME
环境变量已设置,并且指向JDK的根安装目录(不是bin
目录)。
- 原因: 许多Java工具依赖
七、总结
成功安装和配置JDK是学习Java编程的第一步,也是至关重要的一步。虽然不同操作系统的安装过程略有差异,但核心目标都是确保 java
和 javac
命令能够被系统正确识别和执行。