当前位置: 首页 > news >正文

Windows JDK安装详细教程

一、关于JDK

1.1 简介

Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

JDK(Java Development Kit)是用于开发 Java 应用程序的工具包。它由以下几个主要部分组成:

  1. **Java 编译器(javac​ ) :将 Java 源代码文件(.java)编译成字节码文件(.class),这些字节码文件可以在 Java 虚拟机(JVM)上运行。
  2. Java 运行时环境(JRE) :包括 JVM 和标准类库。JRE 使得 Java 程序能够在没有开发工具的情况下运行。
  3. 标准类库:提供了 Java 程序开发所需的基础类和工具,例如集合框架、输入输出操作、网络编程等。
  4. **Java 调试器(jdb​ ) :用于调试 Java 程序。
  5. **Java 文档生成工具(javadoc​ ) :自动生成 Java 类文档和 API 文档。
  6. Java 虚拟机(JVM) :执行 Java 字节码,并提供了内存管理、垃圾回收等功能。

JDK 是开发 Java 应用程序的基础工具包,它的不同版本(例如 JDK 8, JDK 11, JDK 17 等)可能包含不同的特性和改进。使用 JDK,开发者可以编写、编译、调试和运行 Java 程序。

f634e0b3-ea59-4c28-ba2b-12505568b0ae

1.2 JDK和JRE的区别

JDK(Java Development Kit)和 JRE(Java Runtime Environment)都是 Java 环境的组成部分,但它们的功能和用途有所不同:

JDK(Java Development Kit)

  • 目的:JDK 是一个开发工具包,提供了用于开发 Java 应用程序的全部工具和库。

  • 包含内容

    • JRE:JDK 包含了 JRE,因此也包括了 JVM 和标准类库。
    • 编译器:如 javac​,用于将 Java 源代码编译成字节码。
    • 调试工具:如 jdb​,用于调试 Java 程序。
    • 文档生成工具:如 javadoc​,用于生成 API 文档。
    • 其他开发工具:如 javap​(类文件反汇编工具),jar​(Java 打包工具)等。
  • 用途:主要用于开发 Java 程序,提供所有必需的工具来编写、编译和调试代码。

JRE(Java Runtime Environment)

  • 目的:JRE 是一个运行时环境,提供了运行 Java 应用程序所需的环境。

  • 包含内容

    • JVM:Java 虚拟机,用于执行 Java 字节码。
    • 标准类库:提供了执行 Java 程序所需的基础类库(如集合框架、输入输出等)。
    • 支持文件:如 Java 核心类库。
  • 用途:主要用于运行已经编译好的 Java 应用程序。它不包括开发工具,因此不适合用于开发 Java 程序。

总结

  • JDK:包含 JRE 和开发工具,适用于开发者。
  • JRE:仅包含运行时环境,适用于普通用户只需运行 Java 程序的情况。

如果你需要开发 Java 应用程序,你应该安装 JDK。如果你只需要运行 Java 应用程序,你只需要安装 JRE。

1.3 JDK版本选择

选择适合的 JDK 版本取决于几个因素,比如项目需求、兼容性和长期支持。以下是一些考虑因素和建议:

  1. 项目需求

    • 确认你的项目是否有特定的 JDK 版本要求。某些库或框架可能只支持特定版本的 JDK。
  2. 长期支持(LTS)版本

    • JDK 8、JDK 11 和 JDK 17 是 Oracle 和 OpenJDK 提供的长期支持版本。LTS 版本通常更稳定,适合用于生产环境。
  3. 新特性

    • 如果希望使用最新的 Java 特性,比如记录类型(record types)或模式匹配(pattern matching),可以选择最新的非 LTS 版本(如 JDK 20)。不过,非 LTS 版本的支持周期较短。
  4. 兼容性

    • 确保你选择的 JDK 版本与已有的系统和工具链兼容。某些老旧系统可能不兼容最新的 JDK 版本。
  5. 社区和工具支持

    • 选择一个社区支持良好的 JDK 版本可以保证你能获得及时的帮助和更新。
  6. 性能和优化

    • 最新版本的 JDK 通常包含性能改进和优化,使用最新版本可以帮助提高应用程序的性能。

如下以常用的JDK8安装为例,展示详细步骤

二、JDK下载

Oracle官方下载:Java Downloads | Oracle

备注:这里笔者电脑是64位版本,选择64位。官网需要登陆才能下载,且下载比较慢。这里笔者已下载,有需要的可私信联系

三、安装JDK

双击下载好的安装包,一步步往下走就行

默认安装到C盘,也可安装到其他目录(需在空目录下)

​​​

备注:安装后jdk文件结构

四、环境变量配置

共需要配置两个变量

JAVA_HOME、Path

4.1 配置JAVA_HOME

进入高级系统配置

image

win11系统进入

新建系统变量:

  • 变量名填写JAVA_HOME
  • 变量值填写安装JDK的路径

4.2 配置Path

编辑Path

在最后面追加:

 %JAVA_HOME%\bin;

(第一个%前面若没有分号,手动打上去分号【 ;%JAVA_HOME%\bin;】

(分号是英文状态下输入的,特别注意)

(小提示:你可以直接按电脑上的 End 键 到最后)

再点“确定”,“确定”,即配置完成

五、验证

点击开始菜单-运行-输入cmd确认-在cmd窗口中输入(或win+R,cmd)

javac

java -version

点击键盘上的Enter键。

如果出现如下图片则环境变量安装成功:

image

image

六、卸载JDK

高效清洁卸载JDK方法:开始菜单-控制面板-程序-程序和功能,在程序中找到所有java选项,右键-卸载即可。

清洁卸载之后可以保证后续再安装JDK能顺利进行!

image

image

相关文章:

Windows JDK安装详细教程

一、关于JDK 1.1 简介 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 JDK(Java Development Kit)是用于开发 Java 应用程序的工具包。它由以下几个主要…...

Ribbon负载均衡底层原理

springcloude服务实例与服务实例之间发送请求,首先根据服务名注册到nacos,然后发送请求,nacos可以根据服务名找到对应的服务实例。 SpringCloudRibbon的底层采用了一个拦截器,拦截了openfeign发出的请求,对地址做了修…...

【C语言可变参数函数的使用与原理分析】

文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意…...

【笔记】Java EE应用开发环境配置(JDK+Maven+Tomcat+MySQL+IDEA)

一、安装JDK17 1.下载JDK17 https://download.oracle.com/java/17/archive/jdk-17.0.7_windows-x64_bin.zip 2.配置环境变量 下载后,解压到本地(目录中最好不要有中文或特殊字符) 打开【控制面板】-【系统和安全】-【系统】-【高级系统…...

一文讲懂扩散模型

一文讲懂扩散模型 扩散模型(Diffusion Models, DM)是近年来在计算机视觉、自然语言处理等领域取得显著进展的一种生成模型。其思想根源可以追溯到非平衡热力学,通过模拟数据的扩散和去噪过程来生成新的样本。以下将详细阐述扩散模型的基本原理…...

学习笔记八:基于Jenkins+k8s+Git+DockerHub等技术链构建企业级DevOps容器云平台

基于Jenkinsk8sGitDockerHub等技术链构建企业级DevOps容器云平台 测试jenkins的CI/CD在Jenkins中安装kubernetes插件安装blueocean插件配置jenkins连接到我们存在的k8s集群配置pod-template添加自己的dockerhub凭据测试通过Jenkins部署应用发布到k8s开发环境、测试环境、生产环…...

科研绘图系列:R语言柱状图分布(histogram plot)

文章目录 介绍加载R包读取数据画图介绍 柱状图(Bar Chart)是一种常用的数据可视化图表,用于展示和比较不同类别或组的数据。它通过在二维平面上绘制一系列垂直或水平的柱子来表示数据的大小,每个柱子的长度或高度代表一个数据点的数值。柱状图非常适合于展示分类数据的分布…...

vue3+ts封装类似于微信消息的组件

组件代码如下&#xff1a; <template><div:class"[voice-message, { sent: isSent, received: !isSent }]":style"{ backgroundColor: backgroundColor }"click"togglePlayback"><!-- isSent为false在左侧&#xff0c;为true在右…...

ES6 reduce方法详解:示例、应用场景与实用技巧

在JavaScript中&#xff0c;reduce 方法是一个非常强大的数组方法&#xff0c;它允许你将数组中的元素归并&#xff08;reduce&#xff09;为单个值。reduce 方法执行一个由你提供的reducer函数&#xff08;归并函数&#xff09;&#xff0c;将其结果汇总为单一的返回值。 一.…...

java后端保存的本地图片通过ip+端口直接访问

直接上代码吧 package com.ydx.emms.datapro.controller;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.…...

2024 年高教社杯全国大学生数学建模竞赛B题4小问解题思路(第二版)

原文链接&#xff1a;https://www.cnblogs.com/qimoxuan/articles/18399415 问题 1&#xff1a;抽样检测方案设计 详细解题思路&#xff1a; 确定抽样检测目标&#xff1a;企业需要确定一个可接受的次品率上限&#xff08;标称值&#xff09;&#xff0c;以及在该次品率下&am…...

docker-nginx数据卷挂载

一、案例1-利用Nginx容器部署静态资源 1.1、需求: 创建Nginx容器&#xff0c; 修改nginx容器内的html目录下的index.html文件,查看变化将静态资源部署到nginx的html目录 1.2、修改html目录下的index.html文件,查看变化 因为docker运用得最小化系统环境&#xff0c;解决办法就…...

项目实战 ---- 商用落地视频搜索系统(8)---优化(2)---查询逻辑层优化

目录 背景 技术衡量与方案 一种可实现方案 可实现方案及设计描述 可能存在的问题 一种创新实现方案 方案的改良设计 策略公式 优化的实现 完整代码 代码解释 异常场景的考量 处理方式 运行注意事项 运行结果 结果优化对比与解释 背景 在项目实战 ---- 商用落地…...

山东大学机试试题合集

&#x1f370;&#x1f370;&#x1f370;高分篇已经涵盖了绝大多数的机试考点&#xff0c;由于临近预推免&#xff0c;各校的机试蜂拥而至&#xff0c;我们接下来先更一些各高校机试题合集&#xff0c;算是对前边学习成果的深入学习&#xff0c;也是对我们代码能力的锻炼。加油…...

餐厅食品留样管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;窗口负责人管理&#xff0c;窗口员工管理&#xff0c;冰柜管理&#xff0c;排班信息管理&#xff0c;留样食品管理&#xff0c;教育宣传管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统…...

亚马逊运营:如何提高亚马逊销量和运营效率?

不少亚马逊卖家们为了扩大业务规模和提高销量&#xff0c;会创建多个卖家账户来同时运营多个亚马逊店铺。问题是&#xff0c;这种多店铺运营模式并非没有风险——亚马逊运营的一个重要方面就是账户的健康管理。一旦某个账户出现问题&#xff0c;亚马逊的算法就可能会启动关联检…...

设计模式背后的设计原则和思想

设计模式背后的设计原则和思想是一套指导我们如何设计高质量软件系统的准则和方法论。这些原则和思想不仅有助于提升软件的可维护性、可扩展性和可复用性&#xff0c;还能帮助开发团队更好地应对复杂多变的需求。以下是一些核心的设计原则和思想&#xff1a; 1. 设计原则 设计…...

项目总体框架

一.后端&#xff08;包装servlet&#xff09; 使用BaseServlet进行请求的初步处理&#xff08;利用继承进行执行这个&#xff09; 在BaseServlet中 处理请求的类型找到对象的方法&#xff0c;并使用注解找到参数名&#xff0c;执行参数自动注入。 package com.csdn.controlle…...

k8s Prometheus

一、部署 Prometheus kubectl create ns kube-ops# 创建 prometheus-cm.yaml apiVersion: v1 kind: ConfigMap metadata:name: prometheus-confignamespace: kube-ops data:prometheus.yml: |global:scrape_interval: 15s # 表示 prometheus 抓取指标数据的频率&#xff0c;默…...

glsl着色器学习(九)屏幕像素空间和设置颜色

在上一篇文章中&#xff0c;使用的是裁剪空间进行绘制&#xff0c;这篇文章使用屏幕像素空间的坐标进行绘制。 上一篇的顶点着色器大概是这样子的 回归一下顶点着色的主要任务&#xff1a; 通常情况下&#xff0c;顶点着色器会进行一系列的矩阵变换操作&#xff0c;将输入的顶…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...