当前位置: 首页 > 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;将输入的顶…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...