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

news/2025/2/26 13:25:12

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 in
        8)
            export JAVA_HOME=$JAVA_HOME_8
            ;;
        21)
            export JAVA_HOME=$JAVA_HOME_21
            ;;
        *)
            echo "Usage: switchjdk 8|21"
            ;;
    esac
    export 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.niftyadmin.cn/n/5868760.html

相关文章

vLLM专题(十四)-自动前缀缓存

一、介绍 自动前缀缓存(Automatic Prefix Caching,简称 APC)缓存现有查询的 KV 缓存,以便新查询如果与现有查询共享相同的前缀,可以直接重用 KV 缓存,从而跳过共享部分的计算。 注意 有关 vLLM 如何实现 APC 的技术细节,请参阅此处。 二、在 vLLM 中启用 APC 在 vLLM …

防火墙双机热备---VRRP,VGMP,HRP(超详细)

双机热备技术-----VRRP,VGMP,HRP三个组成 注:与路由器VRRP有所不同,路由器是通过控制开销值控制数据包流通方向 防火墙双机热备: 1.主备备份模式 双机热备最大的特点就是防火墙提供了一条专门的备份通道(心…

low rank decomposition如何用于矩阵的分解

1. 什么是矩阵分解和低秩分解 矩阵分解是将一个矩阵表示为若干结构更简单或具有特定性质的矩阵的组合或乘积的过程。低秩分解(Low Rank Decomposition)是其中一种方法,旨在将原矩阵近似为两个或多个秩较低的矩阵的乘积,从而降低复…

网络安全防御:蓝队重保备战与应急溯源深度解析

课程目标 本课程旨在培养专业的网络安全蓝队成员,通过系统化的学习和实战演练,使学员能够掌握网络安全防御的核心技能,包括资产测绘、应急响应、系统安全应急溯源分析、网络层溯源分析以及综合攻防演练等。学员将能够熟练运用各种工具和技术…

Deepseek-ClickHouse数据库的安全策略

简介 ClickHouse是一个高性能的列式数据库管理系统,旨在处理大量数据的实时分析和查询。它的设计目标是提供快速、高效的查询性能,同时保证数据的安全性和可靠性。近期,DeepSeek的ClickHouse数据库因未经身份验证的访问漏洞,意外…

kubernetes学习笔记(3)——存储抽象

挂载 nfs是kubernetes存储层可选其中一种网络存储方式。 原生方式数据挂载 apiVersion: apps/v1 kind: Deployment metadata:labels:app: nginx-pv-demoname: nginx-pv-demo spec:replicas: 2selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-p…

Golang学习笔记_38——享元模式

Golang学习笔记_35——代理模式 Golang学习笔记_36——装饰器模式 Golang学习笔记_37——外观模式 文章目录 享元模式(Flyweight Pattern)详解一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 文字编辑器2. 游戏开发3. …

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…