JDK21安装与配置教程

JDK21安装与配置教程

文章目录


一、下载JDK

1. 下载地址

华为云镜像下载地址:
地址 1(OracleJDK):https://repo.huaweicloud.com/java/jdk/
地址 2(OpenJDK):https://mirrors.huaweicloud.com/openjdk/

地址 2 打开地址后如下图所示:

在这里插入图片描述

2. 下载JDK21

在JDK下载网址找到对应的版本进行下载(此处下载openjdk21版本)。

在这里插入图片描述

OpenJDK 21版本对应的不同系统和架构的安装包,具体版本说明如下:

  • openjdk-21_linux-aarch64_bin.tar.gz:适配Linux系统 + ARM64架构(比如M1/M2芯片的Linux设备)的压缩包。
  • openjdk-21_linux-x64_bin.tar.gz:适配Linux系统 + x64架构(常见的64位PC/服务器)的压缩包。
  • openjdk-21_linux-x64_bin.tar.xz:和上面是同系统同架构,但压缩格式为xz(体积更小)。
  • openjdk-21_macosx-x64_bin.tar.gz:适配macOS系统 + x64架构(Intel芯片的Mac)的压缩包。
  • openjdk-21_windows-x64_bin.zip:适配Windows系统 + x64架构的压缩包。

下载后的openjdk-21_windows-x64_bin.zip如下图所示:

在这里插入图片描述

二、JDK21安装及配置

1. 解压zip压缩包

找到下载好的JDK21的zip压缩包openjdk-21_windows-x64_bin.zip,解压到指定目录下(此处解压到C:\developement目录),即安装完成。

在这里插入图片描述

2. 配置Java环境变量

2.1 打开系统属性设置

先右键点击桌面 “此电脑” 并选择 “属性”,进入系统页面后点击 “高级系统设置”,接着在弹出的 “系统属性” 窗口切换到 “高级” 标签页,最后点击 “环境变量” 按钮,进入环境变量配置界面。

在这里插入图片描述

2.2 新建系统环境变量

在打开的 “环境变量” 窗口里,点击 “系统变量” 区域的 “新建 (W)…” 按钮,在弹出的 “新建系统变量” 对话框中,将 “变量名 (N)” 设为 “JAVA_HOME”,“变量值 (V)” 填写 JDK 的安装路径(此处为 “C:\development\jdk-21”),最后点击 “确定” 按钮,即可完成 JAVA_HOME 系统环境变量的创建,这是配置 Java 环境的关键步骤之一。

在这里插入图片描述

2.3 编辑 PATH 环境变量

在 “环境变量” 窗口的 “系统变量” 区域找到 “Path” 变量并选中,点击 “编辑 (I)…” 按钮;在弹出的 “编辑环境变量” 窗口中点击 “新建 (N)”,输入 “% JAVA_HOME%\bin”(通过引用之前创建的 JAVA_HOME 变量来关联 JDK 的 bin 目录),最后依次点击 “确定” 保存设置,完成后系统就能识别 Java 相关命令了。

在这里插入图片描述

2.4 验证环境变量是否配置成功

通过“win+r”快捷键打开 “运行” 窗口,在输入框中填写 “cmd” 并点击 “确定” 按钮,以此启动命令提示符窗口,为后续执行 Java 版本验证命令做准备。

在这里插入图片描述

在启动的命令提示符窗口中,输入 “java -version” 命令后,终端显示出了 OpenJDK 21 的版本信息(包括版本号、运行时环境及虚拟机信息),这表明 Java 环境变量已成功配置。

在这里插入图片描述

Read more

几小时完成生鲜配送系统!飞算JavaAI专业版:智能引导+两大工具承包开发全流程

作为一名Java开发者,我曾无数次被「需求拆解难、后期调试烦」的问题困住,最近面对一个生鲜配送系统的开发需求,光梳理业务逻辑、设计表结构就要耗上大半天,后续还要花时间处理代码规范、依赖冲突,往往一周才能拿出可运行的项目。直到试用了飞算JavaAI专业版,才发现AI辅助开发能如此高效:借助它的智能引导系统和两大核心AI工具,我从需求输入到项目初步完成仅需几小时,大大节省了我的时间。 智能引导五步法:让模糊需求快速落地 做生鲜配送系统前,我的需求很简单:「支持用户下单、订单跟踪、配送员调度、库存管理」,但具体怎么拆分模块、设计接口完全没头绪。放在以前,至少要花1天时间和产品经理对接需求文档,而飞算JavaAI的智能引导系统,直接帮我把模糊需求变成了标准化的开发方案。 第一步「理解需求」就超出预期。我在输入框写下核心诉求后,系统10秒内就拆解出几个关键点,还补充了我没考虑到很多功能——比如当生鲜商品临近保鲜期时,系统会自动触发库存预警,异常订单(如地址不明确、支付超时)会自动分流处理,简直像有个资深行业顾问在补位。 第二步「设计接口」根据我的需求创建了繁多的接口供我选择,并且可

By Ne0inhk
【Java 开发日记】阻塞队列有哪些?拒绝策略有哪些?

【Java 开发日记】阻塞队列有哪些?拒绝策略有哪些?

目录 阻塞队列有哪些? 拒绝策略有哪些? 面试回答 阻塞队列有哪些? 在Java的java.util.concurrent包里面,阻塞队列的实现挺多的,我们可以根据它的功能和结构来记,主要分这么几类: 1. 按容量划分: * 有界队列: 就是队列有固定的容量。 * ArrayBlockingQueue: 最经典的一个,底层是数组,创建时必须指定大小。它的生产和消费用同一把锁,性能相对稳定。 * LinkedBlockingQueue: 底层是链表,它既可以是有界的(构造时指定容量),也可以默认是无界的(默认是Integer.MAX_VALUE,几乎相当于无界)。它的生产和消费用了两把锁,在高并发场景下吞吐量通常比ArrayBlockingQueue更高。 * 无界队列: 理论上是无限的,只要内存够就能一直放。 * PriorityBlockingQueue: 一个支持优先级排序的无界队列。元素必须实现Comparable接口,或者构造时传入Comparator。它出队的顺序是按优先级来的,不是先进先出 * DelayQueue: 一个很特殊的队

By Ne0inhk
Java 大视界 -- 基于 Java+Storm 构建实时日志分析平台:从日志采集到告警可视化(440)

Java 大视界 -- 基于 Java+Storm 构建实时日志分析平台:从日志采集到告警可视化(440)

Java 大视界 -- 基于 Java+Storm 构建实时日志分析平台:从日志采集到告警可视化(440) * 引言: * 正文: * 一、实时日志分析平台的核心架构设计 * 1.1 架构分层与核心组件 * 1.2 组件选型的实战思考(10 余年经验沉淀,数据真实有出处) * 二、日志采集层:Flume 的高可用配置(生产级优化) * 2.1 Flume 的核心配置(抗住十万级 / 秒流量,注释完整) * 2.2 Flume 的高可用部署(避免单点故障,实战步骤清晰) * 2.2.1 多 Agent 冗余部署 * 2.2.2 Nginx

By Ne0inhk