Windows下多个JDK版本快速切换

Windows下多个JDK版本快速切换

本文以windows11为例,安装了jdk1.8\jdk11\jdk17三个版本。

1 安装junction工具

需要借助junction工具创建软链接

下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/junction

下载后,一般解压至C:\Windows\System32目录下,后续可直接使用juncation.exe

命令介绍(需要以管理员权限运行):

# junction创建软链接,【C:\Users\Administrator\.m2\repository】指向【C:\repository】
junction -s C:\Users\Administrator\.m2\repository C:\repository# unction删除软链接
junction -d C:\Users\Administrator\.m2\repository

2 安装jdk

官网地址:https://www.oracle.com/java/technologies/downloads/archive/

国内第三方地址一:http://www.codebaoku.com/jdk/jdk-index.html

国内第三方地址二:https://blog.lupf.cn/category/jdkdl

以上三个地址都可以下载oracke jdk,下载后,统一安装在D盘下

安装成如下:

  • D:\jdk\jdk1.8\jdk1.8.0_351
  • D:\jdk\jdk-11.0.8
  • D:\jdk\jdk-17.0.5

3 编写jdk切换脚本

编写bat脚本,用于快捷切换jdk版本。

D:\jdk\jdk8.bat

@echo off
junction -d D:\jdk\default
junction -s D:\jdk\default D:\jdk\jdk1.8\jdk1.8.0_121
rem pause

D:\jdk\jdk11.bat

@echo off
junction -d D:\jdk\default
junction -s D:\jdk\default D:\jdk\jdk-11.0.8
rem pause

D:\jdk\jdk17.bat

@echo off
junction -d D:\jdk\default
junction -s D:\jdk\default D:\jdk\jdk-17.0.5
rem pause

在 D:\jdk 目录下,创建好jdk8.bat、jdk11.bat、jdk17.bat后,再分别给这三个bat文件授予管理员执行权限。

授权方式如下:

选中bat文件,右键 》 属性 》 安全 》,在这安全下,分别点击Administrator,Users,将对应的权限全部勾选上。

4 配置环境变量

计算机 》 属性 》 高级系统设置 》 环境变量

分别添加如下环境变量\

JAVA_HOME = D:\jdk\default

**CLASS_PATH = **.%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

修改path环境变量,追加以下内容

D:\jdk\default\bin

5 测试验证

双击 D:\jdk\jdk8.bat ,cmd命令窗口输入 java -version 查看当前jdk版本号,正常情况下,是显示jdk1.8的版本。

双击 D:\jdk\jdk11.bat ,cmd命令窗口输入 java -version 查看当前jdk版本号,正常情况下,是显示jdk11的版本。

双击 D:\jdk\jdk17.bat ,cmd命令窗口输入 java -version 查看当前jdk版本号,正常情况下,是显示jdk17的版本。

引用Reference

  • CentOS8搭建nfs服务
  • Kubernetes1.25.4版本安装
  • kubeasz安装kubernetes1.25.5
  • k8s一键安装redis单机版
  • k8s一键安装mysql8单机版
  • k8s部署springboot应用
  • Docker安装及学习
  • Docker制作springboot运行应用镜像
  • Docker制作Java8环境镜像
  • Docker安装Mysql5.7.31
  • Docker安装Mysql8.1.0
  • Elasticsearch单机版本安装
  • Elasticsearch集群安装
  • ELK安装
  • Docker安装ELK
  • zookeeper集群安装
  • Nginx日志切割
  • RabbitMQ集群安装
  • Docker安装RabbitMQ单机版
  • springboot集成prometheus+grafana
  • windows11安装android应用
  • Windows下多个JDK版本快速切换

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

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

相关文章

大数据毕业设计:租房推荐系统 python 租房大数据 爬虫+可视化大屏 计算机毕业设计(附源码+文档)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

广播及代码实现

广播(Broadcast)是一种网络通信方式,它允许一台设备向网络中的所有其他设备发送消息。广播通常用于在网络上传递一些信息,让所有设备都能接收并处理。在广播中,通信的目标是整个网络而不是特定的单个设备。 向子网中…

【JAVA】Java 中 Set集合常用方法

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 常用方法 代码示例 结语 我的其他博客 前言 Java中的Set接口提供了一种不允许包含重复元素的集合。常用的实现类有HashS…

把苹果手机上的备忘录转为长图片,分享给别人方法教程

在这个信息爆炸的时代,手机备忘录几乎成了我随身携带的“记忆宝库”。每当我脑海中闪现出一个想法、灵感或是需要记住的重要事项,我都会第一时间打开苹果手机的备忘录,将它们一一记录下来。备忘录的简洁界面和高效操作总能让我在忙碌的生活中…

正负样本分配策略simOTA

simOTA是YOLOX中提出的 正负样本分配策略(OTA, SimOTA,TAS) OTA源于2021年cvpr的论文,使训练和验证的标签有着更好的对应关系。 yolov5没有用到,只有一种loss: from utils.loss import ComputeLoss comput…

线性代数-第五课,第六课,第七课,第八课

第五课 判断某向量是否可由某向量组线性表示 把向量组组成一个行列式,计算行列式的秩 把所有向量放在一起构成一个行列式,计算行列式的秩 如果两个行列式的秩相等,表示可以线性表示,写答案的格式如下 线性表示:bk…

大模型应用实践:AIGC探索之旅

随着OpenAI推出ChatGPT,AIGC迎来了前所未有的发展机遇。大模型技术已经不仅仅是技术趋势,而是深刻地塑造着我们交流、工作和思考的方式。 本文介绍了笔者理解的大模型和AIGC的密切联系,从历史沿革到实际应用案例,再到面临的技术挑…

第28关 k8s监控实战之Prometheus(二)

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 这节课我们用prometheus-operator来安装整套prometheus服务 https://github.com/prometheus-operator/kube-prometheus/releases 开始安装 1. 解压下载的代码包 wget https://github.com/…

二、串行FLASH文件系统FatFs移植

经过上一节的分析,我们对文件系统有一定的理解了,这一节给大家介绍怎么把FatFs文件系统的这些代码移植到STM32S上,然后STM32利用这一些代码或者函数,以文件的格式对FLASH进行读写数据。 实则对diskio.c提供一些函数接口。 首先将…

Kubernetes-网络

一. 前言 flannel两种容器跨主机通信的方案,其中UDP模式是IP in UDP,即三层报文封装在UDP数据包中通信;而vxlan模式则是MAC in UDP,即二层报文封装在UDP数据包中通信 flannel UDP模式和vxlan模式都对数据包做了封解包&#xff0c…

手把手教你在Ubuntu22上安装VideoRetalking

VideoReTalking是一种新系统,可以根据输入音频编辑真实世界的谈话头部视频的面孔,即使具有不同的情感,也能生成高质量和口型同步的输出视频。我们的系统将这个目标分解为三个连续的任务: (1)具有规范表情的…

SpringBoot实现登录拦截器

SpringBoot实现登录拦截器 对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在SpringBoot开发的项目中,通过实现拦截器来实现用户登录拦截并验证。 1、SpringBoot实现登录拦截的原理 SpringBoot通过实现HandlerIntercep…

一篇文章学会如何在 NestJS 中集成 MongoDB 并实现数据的增删改查操作

前言 在现代的Web应用程序开发中,无论是在数据存储、检索、还是数据流转的各个环节,数据库都扮演着极其重要的角色。MongoDB是一个基于分布式文件存储的开源数据库系统,以其高性能、高可用性和易扩展性著称。 作为JavaScript社区最受欢迎的…

java正则表达式大全(参考)

一、校验数字的表达式 1 数字:1$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9])$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9])(.[0-…

普中STM32-PZ6806L开发板(HAL库函数实现-访问多个温度传感器DS18B20)

简介 我们知道多个DS18B20的DQ线是可以被挂在一起的, 也就是一根线上可以访问不同的DS18B20而不会造成数据错乱, 怎么做到的,其实数据手册都有说到, 就是靠64-bit ROM code 进行识别, 也可以理解成Serial Number进行识别, 因为主要差异还是在Serial Numb…

本地git服务器的使用

最后总结一句,用gitlab最省事,管理权限最方便,别像下文一样整了。 Windows上使用: 首先要在windows开发机上生成密钥: 1.安装git,首先去git官网下载git,https://git-scm.com/downloads&#xff…

初学者SkyWalking详细使用文档

SkyWalking使用文档 下载地址:https://skywalking.apache.org/downloads/ 主要下载:skywalking apm(tar) 、agents(tar) 解压: (可选操作): ​ apache-skywalking-apm-bin --&g…

chromium在中文用户名下无法编译的问题

新电脑没有太注意,起用户名的时候用了中文。 在编译chromium104的代码时,因为环境变量有中文导致编译失败: 因为我的电脑默认是使用gbk编码,而不是utf-8编码。 这个问题有三种解决办法: (一)把…

并发编程:线程同步基础:3.2、使用两个线程模拟生产者和消费者执行任务。

目录 主要方法 1、主程序 2、生产者 3、消费者 4、中间队列(主要代码) 5、执行结果 主要方法 wait(); 线程等待notify(); 通知一个等待的线程notifyAll(); 通知所有等待的线程 1、主程序 package xyz.jangle.thread.test.n2_3.synccondition; /…

MySQL——事物

目录 一.发现问题 二.什么时事物 三.事务提交方式 四.事物的常规操作方式 五. 事务隔离级别 1.如何理解隔离性 2.隔离级别 3.查看与设置隔离性 4.读未提交【Read Uncommitted】 5.读提交【Read Committed】 6.可重复读【Repeatable Read】 7.串行化【serializabl…