jdk21下载、安装(Windows、Linux、macOS)

server/2025/2/28 4:51:08/

Windows 系统

1. 下载安装

访问 Oracle 官方 JDK 下载页面 或 OpenJDK 下载页面,根据自己的系统选择合适的 Windows 版本进行下载(通常选择 .msi 安装包)。

2. 配置环境变量

右键点击 “此电脑”,选择 “属性”。

在左侧导航栏中点击 “高级系统设置”。

在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。

配置 JAVA_HOME 变量

  • 在 “系统变量” 区域,点击 “新建” 按钮。
  • 在 “变量名” 输入框中输入 JAVA_HOME,在 “变量值” 输入框中输入 JDK 21 的安装路径,例如 C:\Program Files\Java\jdk-21
  • 点击 “确定” 保存。

配置 Path 变量

  • 在 “系统变量” 区域找到 Path 变量,选中它并点击 “编辑” 按钮。
  • 点击 “新建”,添加以下两个路径:
    • %JAVA_HOME%\bin
    • %JAVA_HOME%\jre\bin(如果 JDK 21 包含 JRE 的话)
    • .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 点击 “确定” 保存。

3. 验证安装

打开命令提示符(CMD),输入以下命令:

java -version
javac -version

Linux 系统

1. 下载 JDK 21

  • 访问 OpenJDK 下载页面,下载适用于 Linux 的 .tar.gz 压缩包。

2. 安装 JDK 21

  • 打开终端,使用以下命令将下载的压缩包解压到指定目录,例如 /usr/local/java
sudo mkdir /usr/local/java
sudo tar -zxvf jdk-21.*.tar.gz -C /usr/local/java

3. 配置环境变量

  • 打开终端,编辑 ~/.bashrc/etc/profile 文件(~/.bashrc 是用户级配置,/etc/profile 是系统级配置):
sudo vim ~/.bashrc
  • 在文件末尾添加以下内容:
export JAVA_HOME=/usr/local/java/jdk-21
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 保存并退出文件,然后执行以下命令使配置生效:
source ~/.bashrc

4. 验证安装

java -version
javac -version

如果能够正确显示 JDK 21 的版本信息,则说明安装和配置成功。

macOS 系统

1. 下载 JDK 21

  • 访问 Oracle 官方 JDK 下载页面 或 OpenJDK 下载页面,下载适用于 macOS 的 .dmg 安装包。

2. 安装 JDK 21

  • 双击下载好的 .dmg 安装包,按照安装向导的提示进行操作。

3. 配置环境变量

  • 打开终端,编辑 ~/.bash_profile~/.zshrc 文件(如果使用的是 Zsh 终端):
vim ~/.zshrc
  • 在文件末尾添加以下内容:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH=$JAVA_HOME/bin:$PATH
  • 保存并退出文件,然后执行以下命令使配置生效:
source ~/.zshrc

4. 验证安装

  • 在终端中输入以下命令:
java -version
javac -version

如果能够正确显示 JDK 21 的版本信息,则说明安装和配置成功。

多个 jdk 版本如何切换

windows 系统

1. 安装多个 JDK 版本

首先,按照正常的安装流程在系统中安装多个不同版本的 JDK,例如 JDK 8 和 JDK 21,并记住它们各自的安装路径。

2. 配置环境变量

为每个 JDK 版本设置独立的环境变量,以方便后续切换。

  • 右键点击 “此电脑”,选择 “属性”。
  • 在左侧导航栏中点击 “高级系统设置”。
  • 在弹出的 “系统属性” 窗口中,点击 “环境变量” 按钮。
  • 新建环境变量
    • 分别为不同版本的 JDK 创建对应的环境变量,例如 JDK8JDK21,变量值分别为 JDK 8 和 JDK 21 的安装路径。
    • JDK8C:\Program Files\Java\jdk1.8.0_xxx
    • JDK21C:\Program Files\Java\jdk-21
  • 修改 JAVA_HOME 变量
    JAVA_HOME 是用于指定当前使用的 JDK 版本的关键变量。当需要切换 JDK 版本时,只需修改 JAVA_HOME 的值。例如,要使用 JDK 8,将 JAVA_HOME 的值设置为 %JDK8%;要使用 JDK 21,将其值设置为 %JDK21%
  • 修改 Path 变量
    确保 Path 变量中引用的是 %JAVA_HOME%\bin,这样每次修改 JAVA_HOME 后,Path 也会相应更新。

3. 验证切换

每次修改 JAVA_HOME 后,打开新的命令提示符窗口,输入以下命令验证 JDK 版本是否切换成功

java -version

Linux 系统

1. 安装多个 JDK 版本

使用包管理器或手动解压安装包的方式在系统中安装多个不同版本的 JDK。

2. 配置环境变量

编辑 ~/.bashrc/etc/profile 文件,为每个 JDK 版本设置独立的环境变量,并添加切换函数。

# 定义不同 JDK 版本的路径
export JAVA_HOME_8=/usr/local/java/jdk1.8.0_xxx
export JAVA_HOME_21=/usr/local/java/jdk-21# 定义切换 JDK 版本的函数
switchjdk() {case $1 in8)export JAVA_HOME=$JAVA_HOME_8;;21)export JAVA_HOME=$JAVA_HOME_21;;*)echo "Usage: switchjdk 8|21";;esacexport PATH=$JAVA_HOME/bin:$PATH
}# 初始默认 JDK 版本
switchjdk 21

保存文件后,执行以下命令使配置生效:

source ~/.bashrc

3. 切换 JDK 版本

在终端中使用 switchjdk 函数切换 JDK 版本,例如要切换到 JDK 8,执行以下命令:

switchjdk 8

然后输入以下命令验证切换结果:

java -version

macOS 系统

1. 安装多个 JDK 版本

通过 .dmg 安装包或 Homebrew 等工具在系统中安装多个不同版本的 JDK。

2. 配置环境变量

编辑 ~/.bash_profile~/.zshrc 文件,添加切换 JDK 版本的函数。

# 定义切换 JDK 版本的函数
switchjdk() {export JAVA_HOME=$(/usr/libexec/java_home -v $1)export PATH=$JAVA_HOME/bin:$PATH
}# 初始默认 JDK 版本
switchjdk 21

保存文件后,执行以下命令使配置生效:

source ~/.zshrc

3. 切换 JDK 版本

在终端中使用 switchjdk 函数切换 JDK 版本,例如要切换到 JDK 8,执行以下命令:

switchjdk 1.8

接着输入以下命令验证切换结果:

java -version

http://www.ppmy.cn/server/171213.html

相关文章

C++ 的时间库之四:Clock

1 标准时钟类型 1.1 理解 C 的 clock ​ 人类理解的时间和使用的时间其实是不一致的,人类能感知时间的流逝,但是对时间的绝对 0 点的认识依然停留在大爆炸理论上。大爆炸发生的时刻是否就是时间的绝对 0 点,在那之前有没有时间?…

计算机网络之传输层(传输层的功能)

一、数据分段与重组 传输层从会话层接收数据,并将其分割成较小的数据段,以适应网络层的最大传输单元(MTU)限制。在目的端,传输层负责将这些数据段重新组合成原始数据,确保数据的完整性和正确性。 二、端口…

java面试题之equals和==的区别

详细的equals和的区别 这已经是一个老生常谈的话题了,最近有工作了三四年的朋友去面试,面试官还是问到了这个问题,这好像已经成为java基础部分必问的一个问题了,在这里我也结合了网上的一些细节,谈谈自己的看法。 首先来看一下实例 运行结果如下 我们再来看看这个 运行结果…

Java(六十)网络编程-TCP和UDP协议通讯

终于到网络编程部分了,我目前主业是做PHP的。PHP目前是专职用来做web的,但是java不同,他可以用来做其他的。 PHP中的http协议通讯是内置封装好的。http协议基于TCP协议。 Java先从TCP通讯和UDP通讯开始学起。 我们先来明确几个概念: 1:网络编程也叫做Socket编程,也叫做…

京准电钟解读:为何不能用网络上的NTP时间源服务器

京准电钟解读:为何不能用网络上的NTP时间源服务器 京准电钟解读:为何不能用网络上的NTP时间源服务器 通常是因为以下几个方面的原因: 安全性问题: NTP服务器可能被黑客操纵或成为攻击的目标,如果服务器被攻破&…

【QT】QLinearGradient 线性渐变类简单使用教程

目录 0.简介 1)qtDesigner中 2)实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类,用于定义线性渐变效果(通过样式表设置)。它可以用来填充形状、背景或其他图形元素&#xff0…

【CSS】less基础(简单版)

less基础(简单版) 01.CSS的弊端02.LESS简介以及使用变量03.less编译easy less插件04.less嵌套05.less运算 01.CSS的弊端 如下图: 要手动计算倍数。 02.LESS简介以及使用变量 03.less编译easy less插件 安装easy less之后,保存le…

SQL笔记#SQL高级处理

一、窗口函数 1、什么是窗口函数 窗口函数也称为OLAP函数。OLAP的意思是对数据库数据进行实时分析处理。 2、窗口函数的语法 <窗口函数> OVER ( [PARTITION BY <列清单>] ORDER BY <排列用列清单> ) 能…