【码道】环境搭建:JDK安装与配置

0 阅读10分钟

【码道】系列博客致力于为广大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环境变量中,这样你就可以在任何路径下使用 javajavac 命令。
      • Set JAVA_HOME variable: 同样强烈建议勾选。许多Java应用程序和开发工具(如Maven, Gradle, Tomcat等)依赖于 JAVA_HOME 环境变量来找到JDK的安装位置。
      • Associate .jar: 勾选此项,使得 .jar 文件默认由Java运行环境打开。
    • 确认选项后,点击 "Next"。
  • 准备安装: 点击 "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 ~/.zshrcnano ~/.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 ~/.zshrcsource ~/.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

六、常见问题与故障排除

  • javajavac 命令未找到 / command not found:

    • 原因: JDK的 bin 目录没有正确添加到系统的 PATH 环境变量中,或者环境变量修改后没有使新配置生效(如未重新打开终端窗口或重启)。
    • 解决: 仔细检查 PATH 环境变量的设置,确保路径正确无误,并且包含了JDK的 bin 目录。确认 JAVA_HOME 设置是否正确。修改后,务必打开新的终端窗口测试。
  • 使用了错误的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) 或类似命令 (其他发行版) 来切换默认版本。
  • 权限问题 (Linux/macOS):

    • 原因: 手动安装JDK到系统目录(如 /usr/local)时,可能需要 sudo 权限。
    • 解决: 在执行需要写入系统目录的命令时(如 mkdir, tar -C /usr/local/...),请使用 sudo
  • JAVA_HOME 未设置或设置错误:

    • 原因: 许多Java工具依赖 JAVA_HOME 来定位JDK。
    • 解决: 确保 JAVA_HOME 环境变量已设置,并且指向JDK的根安装目录(不是 bin 目录)。

七、总结

成功安装和配置JDK是学习Java编程的第一步,也是至关重要的一步。虽然不同操作系统的安装过程略有差异,但核心目标都是确保 javajavac 命令能够被系统正确识别和执行。