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

在Window10或11系统中同时安装 JDK8 和 JDK11

在Window10或11系统中同时安装 JDK8 和 JDK11

最近写项目,之前的项目是用Java8环境开发的,在二次迭代中,但是新开发的项目采用Java11环境来开发,所以需要同时安装JDK8和JDK11环境,但是两个环境是不能同时使用的,每次切换使用某一种环境,我这里做个记录,把一些踩的坑也记录下,大家在进行操作时可以参考一下。

本文指导读者如何从Oracle官网下载并部署JDK8和11,设置JAVA_HOME、JAVA11_HOME和JAVA8_HOME环境变量,以及如何正确配置PATH以确保不同JDK版本间的顺利切换,特别关注了如何避免与Oracle默认路径冲突。

安装jdk:
从Oracle 官网下载两个版本的 JDK 文件到本地,官网下载地址:JDK 下载 | ORACLE
大家可以在官网下载,也可以用下面的链接下载,主要是看自己需要的版本:
「jdk」https://www.aliyundrive.com/s/zxmMxE6zsdb 提取码: 79lb

下载好之后双击exe文件,启动安装程序,选择好安装的路径即可,这里要注意一点不要有中文路径,切记。

二、安装
① JDK 1.8安装
在这里插入图片描述
选择“是”,然后如下图:
在这里插入图片描述
点击下一步:

在这里插入图片描述
在这里插入图片描述

安装过程中会弹出jre的安装提示框,如下所示:
在这里插入图片描述这里无需改动,点击下一步,然后你会看到这个:
在这里插入图片描述

在这里插入图片描述

② JDK 11安装
JDK11安装速度实际是很快的,因为它没有为我们安装jre,而1.8会去安装jre,这就是区别所在,其他操作都跟安装Java8的jdk一样,另外,后面的JDK版本可能都不会为你安装jre,因此你需要手动去生成jre文件。在后面配置环境变量哪里会说明怎么生成JDK 11的jre文件。
在这里插入图片描述
三、 配置环境变量
① 进入高级系统设置
方式一:使用快捷键Win + S ,在输入框中输入env,按回车即可。
在这里插入图片描述
方式二:

鼠标右键 “此电脑” 选择属性,之后会出现一个弹窗,点击 “高级系统设置”

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
② JDK1.8配置
在这里插入图片描述
输入完成之后点确认,第一项配置就完成了,接下来进行第二步

2.新建CLASSPATH 变量,变量值为:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面是有一个点的),配置好之后如下图,这里是可以复制粘贴的。
在这里插入图片描述
然后点确定保存变量,进入第三步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后点确定保存,出去之后再点确定,然后再点确定,至此环境变量配置完毕,接下来就是测试环境变量配置有没有问题了。

③ JDK11配置
在这里插入图片描述
点击确定,然后我们在系统变量下找到Path变量,点击编辑,然后再弹出的窗口中点击新建按钮,输入:
%JAVA_HOME11%\bin
%JAVA_HOME11%\jre\bin
注意这里是新建一次添加一个,你不要一次就添加两个,那样是不行,如下图所示就是最终结果.
在这里插入图片描述
④ java11生成jre文件夹
用快捷键Win + S,输入cmd,选择以管理员身份运行
在这里插入图片描述
因为我是安装在D盘,所以首先我们进入D盘:

D:

进入JDK11安装目录

cd Java\jdk-11

然后使用如下命令生成jre文件夹

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

输入指令之后回车即可生成,注意不要重复生成,你也生成不了。如下图所示。
在这里插入图片描述
jre文件夹已经生成成功了。
在这里插入图片描述
四、验证环境变量配置
验证这个地方JDK1.8和JDK11没有什么区别,快捷键“ win + R ” ,打开运行窗口,输入cmd,点击确定打开命令行窗口。

在这里插入图片描述
① java 验证
在这里插入图片描述
② javac 验证
在这里插入图片描述
③ java -version 验证
再输入 java -version ,回车执行,(注意,java -version 中间有空格,我看到太多粗心的少打空格而失败了,切记、切记、切记。)
在这里插入图片描述
到这里你的Java环境已经安装好了!

下面是针对需要安装Java8和Java11两个环境的同学进行的操作:

首先你需要根据上面的安装好Java8和Java11的配置

然后配置路径
创建两个JAVA_HOME子变量JAVA8_HOME和JAVA11_HOME,分别指向jdk8和jdk11的安装目录
设置PATH环境变量的值为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
设置JAVA_HOME环境变量的值:%JAVA_HOME8% 或 %JAVA_HOME11%
这样,在使用时如果需要切换jdk版本,只需要替换JAVA_HOME的值为相应的子变量即可

注意 :在同一个电脑上不能同时配置多个JDK环境变量,但是我们可以通过修改JDK环境变量中的JAVA_HOME 将值改成相应的JDK安装目录,达到来回切换的目的。

在这里插入图片描述
系统变量中的path中的%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin不需要变动。如图:
在这里插入图片描述
查看Java版本
在命令行下输入java -version
在这里插入图片描述

注意问题
有可能在修改成jdk8之后java -version还是显示的jdk11
这时要检查环境变量里的path配置,%JAVA_HOME%\bin之前是否还有对其他jdk版本进行了配置
因为系统识别是默认识别Path配置最前面的安装目录

在这里插入图片描述
打开cmd,输入java -version命令,查看版本,版本为JDK8。

切换版本:修改系统变量JAVA_HOME的值为 %JAVA11_HOME%

重启cmd 注意:一定要重启cmd!

BUG

输入java -version命令,查看版本,版本仍然为JDK8。

问题:切换版本失败

解决方案:
这里可以看到,在 Path 中的第二行,还有一个配置 C:\Program Files\Common Files\Oracle\Java\javapath 这是在安装 JDK 时 Oracle 默认的位置,为了实现可以方便的切换JDK的版本,就需要保证%JAVA_HOME%\bin 的配置在 Oracle 默认的路径配置的最前边 或者将 默认的路径和配置删除掉,否则会导致切换的失败。
改为版本之后要重启cmd 注意:一定要重启cmd!

好了,到此都没问题恭喜你就安装和切换版本成功了!可以点赞收藏一下吧~

相关文章:

在Window10或11系统中同时安装 JDK8 和 JDK11

在Window10或11系统中同时安装 JDK8 和 JDK11 最近写项目,之前的项目是用Java8环境开发的,在二次迭代中,但是新开发的项目采用Java11环境来开发,所以需要同时安装JDK8和JDK11环境,但是两个环境是不能同时使用的&#…...

Hbase2.2.7集群部署

环境说明 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143确保hadoop和zookeeper集群都先启动好我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 下载安装包 下载链接:In…...

Java学习,数据结构

Java 提供了丰富的数据结构来处理和组织数据,Java的 java.util 包中提供了许多这些数据结构的实现,可以根据需要选择合适的类。 List(列表) ArrayList:基于动态数组的数据结构,允许包含重复元素和 null。 …...

微众银行前端面试题及参考答案

使用的协议是 HTTP 还是 HTTPS,为什么没用 HTTPS? 在前端开发中,有些网站使用 HTTP 协议,有些使用 HTTPS 协议。 使用 HTTP 协议的情况可能是因为网站对安全性的要求不是极高,或者处于开发的早期阶段,还没有…...

spark同步mysql数据到sqlserver

使用Apache Spark将数据从MySQL同步到SQL Server是一个常见的ETL(Extract, Transform, Load)任务。这里提供一个基本的步骤指南,以及一些代码示例来帮助你完成这项工作。 ### 前提条件 1. **安装Spark**:确保你的环境中已经安装了…...

使用 useMemo 和 React.memo 优化 React 组件渲染

在 React 中,性能优化是一个重要的主题,特别是在复杂的组件树中。本文将演示如何在同一个父组件中使用 useMemo 和 React.memo 来优化子组件的渲染。 1. 组件结构 创建一个父组件,包含两个子组件: MemoChild:使用 R…...

像素流送api ue多人访问需要什么显卡服务器

关于像素流送UE推流,在之前的文章里其实小芹和大家聊过很多,不过今天偶然搜索发现还是有很多小伙伴,在搜索像素流送相关的问题,搜索引擎给的提示有这些。当然这些都是比较短的词汇,可能每个人真正遇到的问题和想获取的…...

Bert+CRF的NER实战

CRF(条件随机场-Conditional Random Field) 原始本文:我在北京吃炸酱面 标注示例: 我O在O北B-PLA京I-PLA吃O炸B-FOOD酱I-FOOD面I-FOOD CRF: 目的:提出一些不可能出现的预测组合(例如I-PLA不能…...

python学习笔记8-函数2

参数传递 传不可变对象 & 传可变对象 def func(b):print(id(a), a) #140737041872600 234print(id(b), b) #140737041872600 234a 234 func(a)def func(b):print(id(a), a) #1413554098560 [343]print(id(b), b) #1413554098560 [343]a [343] func(a)def func(b):b.appe…...

【linux学习指南】详解Linux进程信号保存

文章目录 📝保存信号🌠 信号其他相关常⻅概念🌉在内核中的表⽰ 🌠 sigset_t🌠信号集操作函数🌉sigprocmask🌉sigpending 🚩总结 📝保存信号 🌠 信号其他相关常…...

Postman设置接口关联,实现参数化

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 postman设置接口关联 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这…...

ORACLE之DBA常用数据库查询

数据库信息 数据库概要select a.name "DB Name", e.global_name "Global Name", c.host_name "Host Name", c.instance_name "Instance Name" , DECODE(c.logins,RESTRICTED,YES,NO) "Restricted Mo…...

C++之C++11新特性(三)--- 智能指针

目录 一、智能指针 1.1 为什么需要智能指针 1.2 内存泄漏 1.2.1 内存泄漏的基本概念 1.2.2 内存泄漏的分类 1.2.3 如何避免内存泄漏 1.3 智能指针的使用及其原理 1.3.1 RAII 1.3.2 智能指针的基本原理 1.3.3 auto_ptr 1.3.4 unique_ptr 1.3.5 shared_ptr 1.3.6 sha…...

12 设计模式之工厂方法模式

一、什么是工厂方法模式? 1.定义 在软件开发中,设计模式 是解决常见软件设计问题的最佳实践。而 工厂方法模式(Factory Method Pattern) 作为创建型设计模式之一,常常被用来解决对象创建问题。它通过将对象的创建交给…...

Python 自动化办公的 10 大脚本

大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。 1. 批量…...

十一、快速入门go语言之接口和反射

文章目录 接口:one: 接口基础:two: 接口类型断言和空接口:star2: 空接口实现存储不同数据类型的切片/数组:star2: 复制切片到空接口切片:star2: 类型断言 反射 📅 2024年5月9日 📦 使用版本为1.21.5 接口 十、Java类的封装和继承、多态 - 七点半的菜市…...

Python中字符串和正则表达式

Python中字符串和正则表达式 在Python编程中,字符串是最常用的数据类型之一。字符串用于表示文本数据,而正则表达式则是一种强大的工具,用于处理和匹配字符串中的模式。本文将介绍Python中的字符串操作、字符串格式化以及如何使用正则表达式…...

力扣刷题TOP101:8.BM10 两个链表的第一个公共结点

目录: 目的 思路 复杂度 记忆秘诀 python代码 目的 两个无环的单向链表,它们的第一个公共结点{{6,7}。 思路 这个任务是找到两个链表的第一个公共结点。可以看作两个心机boy偷偷补课翻车事件。平时嘴上说自己在家玩游戏,实际上背地里都偷…...

⽂件操作详解

⽬录 一 文件操作的引入 1 为什么使⽤⽂件? 2 什么是⽂件? 3 文件分类(1 从⽂件功能的⻆度来分类:程序⽂件/数据⽂件 2根据数据的组织形式:为⽂本⽂件/⼆进制⽂件) 二 ⽂件的打开和关闭 1 …...

UR开始打中国牌,重磅发布国产化协作机器人UR7e 和 UR12e

近日,优傲(UR)机器人公司立足中国市场需求,重磅推出UR7e和UR12e 两款本地化协作机器人。它们延续优傲(UR)一以贯之的高品质与性能特质,着重优化负载自重比,且在价格层面具竞争力&…...

PostgreSQL实现透视表查询

PostgreSQL 8.3版本发布时,引入了一个名为tablefunc的新扩展。这个扩展提供了一组非常有趣的函数。其中之一是交叉表函数,用于创建数据透视表。这就是我们将在本文中讨论的内容。 需求说明 解释此函数如何工作的最简单方法是使用带有数据透视表的示例…...

C#里怎么样使用Array.BinarySearch函数?

C#里怎么样使用Array.BinarySearch函数? 因为二分算法如此重要,所以要多加练习。 但是它的返回值,也有三种状态,导致很多人使用它的时候, 也感觉到迷惑的。 在这里的例子演示了三种返回值的使用: /** C# Program to Search an element with Array Indices*/ using …...

量化交易系统开发-实时行情自动化交易-8.5.VNPY平台

19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于VNPY平台介绍。 VN.PY 是…...

分治算法中的主定理及其应用

引言 学习递归算法的时候,找到了用来计算算法复杂度的主定理。问大语言模型,发现回答的主定理描述有所不同。本文比较了两个不同版本中表述的差异。并给出一些例子用来计算分治递归类算法的复杂度。 主定理的不同版本 版本1 在《算法导论》第三版第四…...

前端的面试题

1.常用的块与行属性内标签有哪些?有什么特征? 块标签:div、h1~h6、ul、li、table、p、br、form。 特征:独占一行,换行显示,可以设置宽高,可以嵌套块和行 行标签:span、a、img、text…...

vue实现excel导出导入

文章目录 安装xlsx依赖和file-saver依赖Excel导出使用element-ui的el-table展示数据定义导出按钮将数据导出 excel导入定义文件导入显示框定义导入按钮解析选择的文件进行导入 安装xlsx依赖和file-saver依赖 npm install xlsx -S npm install file-saver -SExcel导出 使用ele…...

婚纱摄影管理系统|Java|SSM|VUE| 前后端分离

【重要1⃣️】前后端源码万字文档部署文档 【重要2⃣️】正版源码有问题包售后 【重要3⃣️】虚拟可复制品不支持退换货 【重要3⃣️】虚拟可复制品不支持退换货 【重要3⃣️】虚拟可复制品不支持退换货 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【…...

对拍详细使用方法

对拍的作用 对于我们在学校OJ,cf,牛客…各种只提供少量测试数据的题目,常常交上代码常常超时,能写出正确的暴力代码而题目要求的时间复杂度更低。然而这时你写出了能通过样例且时间复杂度更低的代码,但交上去就是错误…...

Flume 与 Kafka 整合实战

目录 一、Kafka 作为 Source【数据进入到kafka中,抽取出来】 (一)环境准备与配置文件创建 (二)创建主题 (三)测试步骤 二、Kafka 作为 Sink数据从别的地方抽取到kafka里面】 (…...

Web开发技术栈选择指南

互联网时代的蓬勃发展,让越来越多人投身软件开发领域。面对前端和后端的选择,很多初学者往往陷入迷茫。让我们一起深入了解这两个领域的特点,帮助你做出最适合自己的选择。 在互联网发展的早期,前端开发主要负责页面布局和简单的…...

社群赋能电商:小程序 AI 智能名片与 S2B2C 商城系统的整合与突破

摘要:本文聚焦于社群在电商领域日益凸显的关键地位,深入探讨在社群粉丝经济迅猛发展背景下,小程序 AI 智能名片与 S2B2C 商城系统如何与社群深度融合,助力电商突破传统运营局限,挖掘新增长点。通过分析社群对电商的价值…...

C++11 http服务端和客户端库cpp-httplib

C11 http服务端和客户端库cpp-httplib 环境: http: yhirose/cpp-httplib v0.18.1 json: nlohmann/json v3.11.31. 简介 cpp-httplib 是一个轻量级且易于使用的 C11 HTTP 库,由 yhirose 开发和维护,开源协议为MIT。它支持 HTTP/HTTPS 协议&…...

spring-boot自定义ApplicationListener及源码分析

ApplicationListener是spring boot应用启动时的事件监听器。监听的事件有&#xff08;包括但不限于&#xff09;&#xff1a; &#xff08;1&#xff09;接下来&#xff0c;我们先通过一个例子实现自定义ApplicationListener&#xff1a; 监听器需要实现ApplicationListener<…...

打造双层环形图:基础与高级渐变效果的应用

在数据可视化领域&#xff0c;环形图因其独特的展示方式而广受欢迎。今天&#xff0c;我们将通过ECharts库来创建一个具有双层渐变效果的高级环形图。本文将详细介绍如何实现这种视觉效果。 1. 环形图基础 首先&#xff0c;我们需要了解环形图的基本构成。环形图由内外两个圆…...

BUGKU printf

整体思路 实现循环-->获取libc版本和system函数地址->将strcpy的got表项修改为system并获得shell 第一步&#xff1a;实现循环 从汇编语句可以看出&#xff0c;在每次循环结束时若0x201700处的值是否大于1则会继续循环。 encode1会将编码后的结果保存至0x2015c0处&am…...

spring boot2.7集成OpenFeign 3.1.7

1.Feign Feign是一个声明式web服务客户端。它使编写web服务客户端更容易。要使用Feign&#xff0c;请创建一个接口并对其进行注释。它具有可插入注释支持&#xff0c;包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持&…...

SSM相关面试题01

目录 1.何为Spring Bean容器?Spring Bean容器与Spring IOC 容器有什么不同吗? 2.Spring IOC 如何理解? 3.Spring DI 如何理解? 4.Spring 中基于注解如何配置对象作用域?以及如何配置延迟加载机制? 5.Spring 工厂底层构建Bean对象借助什么机制?当对象不使用了要释放…...

Python websocket

router.websocket(/chat/{flow_id}) 接口代码&#xff0c;并了解其工作流程、涉及的组件以及如何基于此实现你的新 WebSocket 接口。以下内容将分为几个部分进行讲解&#xff1a; 接口整体概述代码逐行解析关键组件和依赖关系如何基于此实现新功能示例&#xff1a;创建一个新的…...

正则表达式

正则表达式&#xff1a; 正则表达式区别于通配符&#xff0c;正则表达式是用来匹配文本的内容&#xff0c;命令的输出结果也属于文本内容。也可以使用正则表达式。 通配符用来匹配文件名和目录名。 grep用来过滤文本内容&#xff0c;以匹配要查询的结果。 linux的文本三剑客…...

机器学习——生成对抗网络(GANs):原理、进展与应用前景分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一. 生成对抗网络的基本原理二. 使用步骤2.1 对抗性训练2.2 损失函数 三. GAN的变种和进展四. 生成对抗网络的应用五. 持续挑战与未来发展方向六. 小结 前言 生…...

HTTPS 加密

HTTPS 加密技术 1. HTTPS 概述 HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是 HTTP 协议的安全版本&#xff0c;利用 SSL/TLS 协议对通信进行加密&#xff0c;确保数据的机密性、完整性和身份认证。HTTPS 在保护敏感数据的传输&#xff08;如登录凭证、…...

Golang 构建学习

Golang 构建学习 如何搭建Golang开发环境 1. 下载GOlang包 https://golang.google.cn/dl/ 在地址上下载Golang 2. 配置包环境 修改全局环境变量&#xff0c;GOPROXY&#xff0c;GOPATH&#xff0c;GOROOT GOPROXYhttps://goproxy.cn,direct GOROOT"" // go二进…...

OpenCV相机标定与3D重建(7)鱼眼镜头立体校正的函数stereoRectify()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::fisheye::stereoRectify 是 OpenCV 中用于鱼眼镜头立体校正的函数。该函数计算两个相机之间的校正变换&#xff0c;使得从两个相机拍摄的图像…...

JVM_垃圾收集器详解

1、 前言 JVM就是Java虚拟机&#xff0c;说白了就是为了屏蔽底层操作系统的不一致而设计出来的一个虚拟机&#xff0c;让用户更加专注上层&#xff0c;而不用在乎下层的一个产品。这就是JVM的跨平台&#xff0c;一次编译&#xff0c;到处运行。 而JVM中的核心功能其实就是自动…...

数据结构4——栈和队列

目录 1.栈 1.1.栈的概念及结构 1.2栈的实现 2.队列 2.1队列的概念及结构 2.2队列的实现 1.栈 1.1.栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一段称为栈顶&#xff0c;另一端称为…...

【AIGC】大模型面试高频考点-数据清洗篇

【AIGC】大模型面试高频考点-数据清洗篇 &#xff08;一&#xff09;常用文本清洗方法1.去除无用的符号2.去除表情符号3.文本只保留汉字4.中文繁体、简体转换5.删除 HTML 标签和特殊字符6.标记化7.小写8.停用词删除9.词干提取和词形还原10.处理缺失数据11.删除重复文本12.处理嘈…...

Java基于SSM框架的跑腿平台小程序【附源码、文档】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…...

数据库连接池

在Java的多线程中&#xff0c;有线程池负责线程管理&#xff0c;类似线程池&#xff0c;在数据库中也有数据库连接池&#xff0c;负责数据库连接的管理。数据库连接池是一个容器。负责分配、管理数据库连接&#xff08;Connection&#xff09;。它允许应用程序重复使用一个现有…...

本地部署 WireGuard 无需公网 IP 实现异地组网

WireGuard 是一个高性能、极简且易于配置的开源虚拟组网协议。使用路由侠内网穿透使其相互通讯。 第一步&#xff0c;服务端&#xff08;假设为公司电脑&#xff09;和客户端&#xff08;假设为公司外的电脑&#xff09;安装部署 WireGuard 1&#xff0c;点此下载&#xff08;…...

Educator头歌:离散数学 - 图论

第1关&#xff1a;图的概念 任务描述 本关任务&#xff1a;学习图的基本概念&#xff0c;完成相关练习。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;图的概念。 图的概念 1.一个图G是一个有序三元组G<V,R,ϕ>&#xff0c;其中V是非空顶点集合&am…...