JDK21安装与环境变量配置完全指南(windows版)

一、JDK 21 安装包下载

1. 官网下载地址

访问 Oracle 官方 JDK 21 下载页面:https://www.oracle.com/java/technologies/downloads/#java21

2. 选择安装包

3. 开始下载

点击下载链接,等待安装包下载完成。


二、安装 JDK 21

第一步:运行安装程序

找到下载好的 jdk-21_windows-x64_bin.exe 文件,双击运行

第二步:进入安装向导

在弹出的安装向导窗口中,点击 "下一步" 按钮。

第三步:选择安装目录

  • 默认安装路径:C:\Program Files\Java\jdk-21.0.10
  • 如需更改路径,点击 "更改..." 按钮选择其他位置
  • 建议:记住你选择的安装路径,后续配置环境变量时需要用到

确认路径后,点击 "下一步" 开始安装。

第四步:等待安装完成

安装程序会自动解压并安装文件,等待进度条完成。

第五步:完成安装

安装完成后,点击 "关闭" 按钮退出安装向导。

注意:JDK 21 已内置 JRE(Java Runtime Environment),无需单独安装 JRE。如果提示安装 JRE,可以选择跳过。


三、配置环境变量

为了让系统能够识别并使用 JDK 21,需要配置环境变量。

方法一:通过"此电脑"属性进入(推荐)

第一步:打开系统属性

  • 右键点击桌面上的 "此电脑"(或"我的电脑")
  • 选择 "属性"

第二步:进入高级系统设置

  • 在系统属性窗口中,点击 "高级系统设置"

第三步:打开环境变量

  • 在"系统属性"对话框中,点击 "环境变量" 按钮

方法二:通过搜索进入(快捷方式)

第一步:搜索环境变量

  • Win + S/ Win 打开搜索框
  • 输入 "环境变量"
  • 点击 "编辑系统环境变量"

第二步:进入环境变量配置

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

配置步骤详解

第一步:新建 JAVA_HOME 变量
  1. 在"环境变量"窗口的 "系统变量" 区域,点击 "新建" 按钮
  2. 填写变量信息:
    • 变量名JAVA_HOME
    • 变量值C:\Program Files\Java\jdk-21.0.10(你的实际安装路径)
  1. 点击 "确定" 保存

第二步:配置 Path 变量
  1. 在"系统变量"列表中找到 Path 变量,选中后点击 "编辑"
  2. 在编辑窗口中,点击 "新建" 按钮
  3. 添加以下路径:
%JAVA_HOME%\bin
  1. 点击 "确定" 保存

第三步:确认所有更改
  • 在"环境变量"窗口点击 "确定"
  • 在"系统属性"窗口点击 "确定"

四、验证安装是否成功

打开命令提示符

Win + R,输入 cmd,回车打开命令提示符窗口。

输入验证命令

java -version

成功安装的输出示例

如果显示类似以上信息,包含 "21" 版本号,说明 JDK 21 安装成功!


五、常见问题与注意事项

⚠️ 重要提示:删除自动配置的路径

JDK 17 在安装时可能会自动配置环境变量。为避免冲突,需要在 Path 中删除以下自动添加的路径:

C:\Program Files (x86)\Common Files\Oracle\Java\javapath C:\Program Files\Common Files\Oracle\Java\javapath

操作步骤

  1. 编辑 Path 变量
  2. 找到上述路径并删除
  3. 确保只保留 %JAVA_HOME%\bin

常见问题

问题

解决方案

提示"java 不是内部或外部命令"

检查 Path 变量是否正确配置,重启 CMD 窗口

版本显示不正确

删除 Path 中的 Oracle Java 自动配置路径

找不到 JAVA_HOME

确认变量名拼写正确,路径无空格错误

Read more

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

【C++】第十七节—二叉搜索树(概念+性能分析+增删查+实现+使用场景)

好久不见,我是云边有个稻草人 《C++》本文所属专栏—持续更新中—欢迎订阅 目录 一、二叉搜索树的概念 二、二叉搜索树的性能分析 三、二叉搜索树的插入 SearchBinaryTree.h test.cpp 四、⼆叉搜索树的查找 【只有一个3】 【有多个3】  五、⼆叉搜索树的删除 六、二叉搜索树的实现代码 SearchBinaryTree.h test.cpp  七、二叉搜索树key和key/value使用场景 7.1 key搜索场景 7.2 key/value搜索场景 7.3 key/value⼆叉搜索树代码实现 .h .cpp 正文开始—— 一、二叉搜索树的概念 ⼆叉搜索树⼜

By Ne0inhk
C++ 游戏开发:从零到英雄的进阶之旅

C++ 游戏开发:从零到英雄的进阶之旅

在当今数字化时代,游戏开发已然成为极具吸引力与挑战性的领域。C++ 作为游戏开发中极为常用的语言之一,凭借其高性能和强大功能,长久以来都是游戏开发者的心头好。若你对游戏开发满怀热忱,却不知如何起步,这篇博客就将为你揭开 C++ 游戏开发的神秘面纱,引领你踏上从新手到高手的进阶之路。 一、为什么选择 C++ 进行游戏开发? 在游戏开发的广袤天地里,编程语言的抉择至关重要。C++ 以其独有的优势,成为众多开发者的不二之选: (一)高性能 游戏开发过程中需要处理海量的实时计算任务,涵盖图形渲染、物理模拟以及用户输入响应等关键环节。C++ 具备直接访问硬件的能力,能够极为高效地利用系统资源,切实保障游戏运行的流畅性。以处理复杂的 3D 场景渲染为例,C++ 能够快速对大量的顶点数据、纹理信息进行处理和计算,精准地将虚拟的 3D 世界呈现在玩家眼前,其性能优势在这种场景下展现得淋漓尽致。 (二)强大的功能 C++ 全力支持面向对象编程(OOP),这使得开发者能够通过类和对象来有条不紊地组织代码。比如在开发一款角色扮演游戏时,我们可以创建 “角色” 类,

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战

C++ 多线程同步之条件变量(condition_variable)实战 💡 学习目标:掌握 C++ 标准库中条件变量的使用方法,理解条件变量与互斥锁的协同工作机制,能够解决多线程间的等待-通知问题。 💡 学习重点:std::condition_variable 的核心接口、wait() 与 notify_one()/notify_all() 的配合使用、生产者-消费者模型的实现。 49.1 条件变量的引入场景 在多线程编程中,我们经常会遇到线程需要等待某个条件满足后再执行的场景。 比如生产者线程生产数据后,消费者线程才能消费;队列不为空时,消费者才能从中取数据。 如果仅用互斥锁实现,消费者线程只能不断轮询检查条件,这会造成 CPU 资源的浪费。 ⚠️ 注意事项:单纯的轮询会导致 CPU 空转,降低程序运行效率,条件变量就是为解决这类问题而生的。 举个简单的轮询反例,消费者不断检查队列是否有数据: #include<iostream>

By Ne0inhk