超级详细的JDK 安装与配置(包含二个或多个JDK的同时安装)

一、JDK介绍

1、较常用的四个JDK版本

JDK8(=Java8=JDK1.8),这个版本较为成熟稳定,是JDK的一个重要长期支持版本(LTS),在生产环境中使用非常广泛;

JDK11,增加了大量实用的新特性,包括新的 ZGC、云计算监控诊断、Http Client、支持Unicode 10.0.0等,一共包含 17 个 JDK 增强提案;

JDK17,最新长期支持版本, 具有switch 新增模式,增加 Realed class 密封类,Parallel GC 默认启用已经浮点运算更加严格;

JDK18,短期版本,增加了服务提供者接口,默认字符集为UTF-8;

二、JDK下载

官网:https://www.oracle.com/

1、首先,打开浏览器,输入以上Oracle的官网网址

在这里插入图片描述

2、然后点开产品,打开产品的列表,点击Java

在这里插入图片描述

3、点击Download Java,进入Java的下载页

在这里插入图片描述

4、这里选择要下载的JDK版本和安装的系统环境,点击下载

学习环境中, 我们通常使用较新版本的JDK, 因为我们要学习部分新特性
开发环境中, 我们通常使用老版本的JDK, 因为老版本稳定且应用广泛
查看官网http://www.oracle.com官网, 目前JDK已经更新至20

在这里插入图片描述

如果需要下载长期支持版本(老版本), 我们向下拉可以看到8和11
不同操作平台可以选择不同的下载入口
在这里插入图片描述

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

5、我们自己选择一个版本进行下载

在这里插入图片描述

三、JDK安装

注意,以下安装路径都不要用中文命名,切记,切记,切记
那么我们今天就来说说JDK8下载安装及配置,以及较新版本JDK的下载安装及配置有哪些注意事项

1.拿到安装包后,直接双击.exe文件,然后点击更改,建议不要默认的安装到C盘,把jdk安装到D盘或者其他盘

在这里插入图片描述

2.以下是我安装到D盘新健一个文件名为java的文件(注意,由于我们安装jdk的时候也把jdk和jre分开,这里建议在java文件下再新建一个名字为jdk1.8.0 的文件和名字为jre1.8.0的文件,目录选择文件jdk1.8.0)

在这里插入图片描述

3,继续点击下一步,就会出现以下安装进度条,耐心等待进度条到满

在这里插入图片描述

4,这已经说明jdk安装成功了,然后点击关闭就可以

在这里插入图片描述

安装好了

在这里插入图片描述

在这里插入图片描述

四、JDK环境配置

1、首先在系统变量中, 新建变量名为JAVA_HOME, 值为JDK8的安装路径

在这里插入图片描述

在这里插入图片描述

2、然后在Path中, 借用变量JAVA_HOME(也就是JDK的安装路径), 找到JDK的bin目录即可

%JAVA_HOME%\bin

最好再配置一个JRE的bin目录

E:\develop\Java\jre1.8.0_202\bin

在这里插入图片描述

3、Win+R 打开cmd 输入java -version 进行测试

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

五、同时安装多个JDK

安装多个JDK 版本需要重复上面的步骤,下载想安装的JDK,进行安装

1、下载JDK

步骤看回上面的JDK下载

2、JDK安装

步骤看回上面的JDK安装,安装步骤大致相同

3、多个JDK的环境配置

3.1、配置JDK环境

细节参考JDK环境配置,这里进行了简化

在这里插入图片描述

这里与上面的,单个JDK 步骤有些区别,具体如下:

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

安装这个步骤同时配置二个或多个JDK,变量名命名为 JAVA_HOME+版本号

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

在配置一个JAVA_HOME 变量值用当前想用的JDK环境的变量名

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

3.2、配置Path环境变量

在这里插入图片描述

新建两条变量,注意将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;分开添加

在这里插入图片描述

配置CLASSPATH环境变量

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

在这里插入图片描述
配置完成,连按确定关闭对话框。

打开cmd命令行,输入java -version

在这里插入图片描述

3.3、切换版本

将JAVA_HOME的变量值改为%JAVA17_HOME%即可。

在这里插入图片描述

打开cmd命令行,输入java -version

在这里插入图片描述

3.4、切换版本不成功的问题
3.4.1、删除javapath的Java文件

如果切换不成功,这可能是安装jdk时,自动生成了优先级更高的配置项,使用以下方式解决:
打开 C:\ProgramData\Oracle\Java\javapath。删除底下三个文件。

在这里插入图片描述

3.4.2、删除注册表文件

从注册表(运行regedit)中 删除jdk的默认启动的版本。在HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft的Java Development Kit的CurrentVersion项的值和Java Runtime Environment的CurrentVersion项的值 windows +R 输入regedit

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/227863.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9)

Tensorflow-gpu 保姆级安装教程(Win11, Anaconda3,Python3.9) 前言Tensorflow-gpu版本安装的准备工作(一)、查看电脑的显卡:(二) 、Anaconda的安装(三)、cuda下载和安装(四)、cudnn下载安装(五)、配置环境变量(六)、创建 tensorfl…

【C++深入浅出】STL之string用法详解

目录 一. 前言 二. STL概要 2.1 什么是STL 2.2 STL的六大组件 2.3 STL的缺陷 三. string类概述 3.1 什么是string类 3.2 为什么要使用string类 四. string类的使用 4.1 包含头文件 4.2 构造函数 4.3 赋值运算符重载 4.4 容量操作 4.5 访问/遍历操作 4.6 查找修改…

【C++初阶】第一站:C++入门基础(上) -- 良心详解

前言: 从这篇文章开始,将进入C阶段的学习,此篇文章是c的第一站的上半篇,讲述C初阶的知识 目录 什么是C C的发展史 C关键字(C98) 命名空间 命名空间定义 命名空间使用 1.加命名空间名称及作用域限定符 2.使用using将命名空间中某个成员引入 3.使…

【JavaSE】基础笔记 - 类和对象(上)

目录 1、面向对象的初步认知 1.1、什么是面向对象 1.2、面向对象与面向过程 2. 类定义和使用 2.1、简单认识类 2.2、类的定义格式 2.3、自定义类举例说明 2.3.1、定义一个狗类 2.3.2、定义一个学生类 3、类的实例化 3.1、什么是实例化 3.2、类和对象的说明 1、面向…

华为P40无法链接adb的解决记录

真的很讨厌华为的设备,很多东西啥设备都能跑得好好的,就华为会出问题,简直就是手机界的IE。 情况:突然无法链接adb到P40,拔插无效,关闭开发人员选项再打开也无效,撤销USB调试授权也无效&#x…

局部性原理和伪共享

CPU Cache CPU Cache可以理解为CPU内部的高速缓存。CPU从内存读取数据时,将要读取的数据及其相邻地址的数据,即至少一个Cache Line,写入Cache,以便后续访问时提高读取速度。 CPU存在多级Cache,级别最高的离CPU最近&a…

别太担心,人类只是把一小部分理性和感性放到了AI里

尽管人工智能(AI)在许多方面已经取得了重大进展,但它仍然无法完全复制人类的理性和感性。AI目前主要侧重于处理逻辑和分析任务,而人类则具有更复杂的思维能力和情感经验。 人类已经成功地将一些可以数据化和程序化的理性和感性特征…

不同路径(力扣LeetCode)动态规划

不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…

python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中,我们已经以钢铁产业产品缺陷检测数据场景为基准,陆续开发构建了多款目标检测模型,感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否?基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

JavaWeb后端数据库MySQL的使用

JavaWeb MySQLSQL数据库设计 多表设计1对多1对1多对多 多表查询连接查询内连接外连接左外连接右外连接 子查询事务索引 MySQL MySQL数据模型 关系型数据库:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 SQL SQL:操作关系型数…

【LeetCode刷题-链表】--86.分隔链表

86.分隔链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class…

孔明棋,(n + 2) x (m + 2)的棋盘,中间n x m的区域都是棋子,求最后最少剩余几个棋子

题目 #include <iostream> using namespace std; int f(int n, int m) {int t, res;if (n > m){t n;n m;m t;}if (n 1)res (m 1) / 2;else if (n 2){if (m % 3 0)res 2;elseres 1;}else if (n 3){res 2;}return res; } int change(int x) {x % 3;if (x 0…