Java->双击Window批处理程序动态切换Java版本

news/2024/9/11 3:49:55/ 标签: java, 开发语言

JDK8

@echo off
chcp 65001 >nul
:: 设置控制台编码为UTF-8,避免中文乱码:: 检查是否以管理员身份运行
openfiles >nul 2>&1
if %errorlevel% neq 0 (echo 请求管理员权限...powershell -Command "Start-Process cmd -ArgumentList '/c %~fnx0' -Verb RunAs"exit /b
):: 设置JDK 8的安装路径
set JDK8_HOME=C:\Users\yang.guo\Java\jdk-1.8:: 设置系统级别的JAVA_HOME
setx JAVA_HOME "%JDK8_HOME%" /M:: 更新当前会话的JAVA_HOME和PATH变量
set JAVA_HOME=%JDK8_HOME%
set PATH=%JAVA_HOME%\bin;%PATH%echo 已切换到 JDK 8:: 显示当前Java版本
java -versionpause

JDK11

@echo off
chcp 65001 >nul
:: 设置控制台编码为UTF-8,避免中文乱码:: 检查是否以管理员身份运行
openfiles >nul 2>&1
if %errorlevel% neq 0 (echo 请求管理员权限...powershell -Command "Start-Process cmd -ArgumentList '/c %~fnx0' -Verb RunAs"exit /b
):: 设置JDK 11的安装路径
set JDK11_HOME=C:\Users\yang.guo\Java\jdk-11.0.2:: 设置系统级别的JAVA_HOME
setx JAVA_HOME "%JDK11_HOME%" /M:: 更新当前会话的JAVA_HOME和PATH变量
set JAVA_HOME=%JDK11_HOME%
set PATH=%JAVA_HOME%\bin;%PATH%echo 已切换到 JDK 11:: 显示当前Java版本
java -versionpause

JDK17

@echo off
chcp 65001 >nul
:: 设置控制台编码为UTF-8,避免中文乱码:: 检查是否以管理员身份运行
openfiles >nul 2>&1
if %errorlevel% neq 0 (echo 请求管理员权限...powershell -Command "Start-Process cmd -ArgumentList '/c %~fnx0' -Verb RunAs"exit /b
):: 设置JDK 17的安装路径
set JDK17_HOME=C:\Users\yang.guo\Java\jdk-17:: 设置系统级别的JAVA_HOME
setx JAVA_HOME "%JDK17_HOME%" /M:: 更新当前会话的JAVA_HOME和PATH变量
set JAVA_HOME=%JDK17_HOME%
set PATH=%JAVA_HOME%\bin;%PATH%echo 已切换到 JDK 17:: 显示当前Java版本
java -versionpause

总结

  • @echo off:关闭命令行回显,避免显示每条命令
  • chcp 65001 >nul:设置控制台编码为UTF-8,避免中文乱码
    检查是否以管理员身份运行:
  • openfiles >nul 2>&1:尝试执行需要管理员权限的命令
  • if %errorlevel% neq 0:如果上一个命令返回非零值,表示没有管理员权限
  • powershell -Command "Start-Process cmd -ArgumentList '/c %~fnx0' -Verb RunAs":使用PowerShell重新启动批处理文件,并请求管理员权限
  • exit /b:退出当前批处理文件
    设置JDK的安装路径:根据需要设置不同版本的JDK路径
    设置系统级别的JAVA_HOME
    setx JAVA_HOME "%JDKX_HOME%" /M:使用setx命令设置系统级别的JAVA_HOME环境变量,更新当前会话的JAVA_HOMEPATH变量:
    set JAVA_HOME=%JDKX_HOME%:在当前会话中设置JAVA_HOME变量
    set PATH=%JAVA_HOME%\bin;%PATH%:将JDKbin目录添加到当前会话的PATH变量中
    输出切换成功的消息:使用echo命令显示切换成功的消息
    显示当前Java版本:使用java -version命令显示当前Java版本
    pause:暂停批处理文件,等待用户按任意键继续

http://www.ppmy.cn/news/1508636.html

相关文章

13.1 Python 正则表达式基础

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

苹果发布 AirPods Pro 2 测试版固件 搭配iOS 18新特性

苹果今天发布了AirPods Pro 2 的第三个测试版固件,包括 Lightning 和 USB-C 两个版本。更新后的固件版本号为 7A5266c,高于 7A5244b,目前可供开发者使用。这是苹果公司自 6 月份宣布 AirPods Pro 2 新功能以来发布的第三个固件更新。 作为iOS…

git拉取后,代码不见了,没有冲突覆盖,且,没有删除,看我是怎么找回的

git拉取后,代码不见了,没有冲突覆盖,且,没有删除 重点提醒 当你的代码丢失时,不要惊慌,首先尝试使用本地的历史记录和远程仓库来找回代码。如果这些方法不起作用,你可以考虑其他的救援工具或寻…

搭建高可用OpenStack(Queen版)集群(十)之部署分布式存储Ceph

一、Ceph知识点学习 Ceph知识点学习:https://www.cnblogs.com/happy-king/p/9207509.html 二、部署分布式存储Ceph 一)设置yum源 在全部控制与计算节点设置epel与ceph yum源 epel源:repo安装包下载_开源镜像站-阿里云 ceph源:cep…

在亚马逊云科技上利用生成式AI开发用户广告营销平台

项目简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 本次介绍的是如何利用亚马逊云科技大模型托…

windows 版本Jenkins的Jenkinsfile中共享变量

场景 jenkins部署在windows服务器上的,需要在Jenkinsfile中获取命令执行的结果存入一个变量,然后在后续的执行中使用此变量 一开始想的是定义一个环境变量,如下所示, pipeline {agent anystages {stage(test) {steps {bat for /…

【网络】传输层TCP协议的报头和传输机制

目录 引言 报头和有效载荷 确认应答机制 超时重传机制 排序和去重 连接管理机制 个人主页:东洛的克莱斯韦克-CSDN博客 引言 TCP是传输层协议,全称传输控制协议。TCP报头中有丰富的字段以及协议本身会制定完善的策略来保证网络传输的可靠性。 TCP…

VIMA: General Robot Manipulation with Multimodal Prompts

发表时间:arXiv 2024年5月15日 论文链接:https://arxiv.org/pdf/2309.11499 作者单位:Xi’an Jiaotong University Motivation:机器人技术中的任务规范有多种形式,例如模仿一次性演示、遵循语言说明和达到目标。它们…

运动耳机哪个品牌好用?五款质量一流品牌推荐!

运动耳机无疑是运动爱好者的绝佳伴侣,让每一次挥汗如雨的瞬间都伴随着无与伦比的音乐盛宴与舒适的佩戴感受。特别是对于跑步爱好者而言,一款优秀的运动耳机更是不可或缺的装备。然而,市场上的运动耳机种类繁多,质量也千差万别&…

机器学习——逻辑回归(学习笔记)

目录 一、认识逻辑回归 二、二元逻辑回归(LogisticRegression) 1. 损失函数 2. 正则化 3. 梯度下降 4. 二元回归与多元回归 三、sklearn中的逻辑回归(自查) 1. 分类 2. 参数列表 3. 属性列表 4. 接口列表 四、逻辑回归…

怎么在网站底部添加站点地图?

在优化网站 SEO 时,站点地图(Sitemap)是一个非常重要的工具。它帮助搜索引擎更好地理解和抓取您的网站内容。幸运的是,从 WordPress 5.5 开始,WordPress 自带了站点地图生成功能,无需额外插件。下面将介绍如…

EPIC 数据库 Chronicles 的连接方式

EPIC 使用的是 IRIS 数据库,但是在 EPIC 内部,却有一个称为 Chronicles 的系统。 有关这个 Chronicles 的连接方式,请参考: Chronicles Chronicles 在 EPIC 内部被称为 DBMS,是 EPIC 的数据库管理系统。 我们可以认…

TDengine Cloud 助力智源未来,引领能源管理革新

在全球能源转型的大背景下,能源管理和储能技术的创新成为了各行业关注的焦点。随着能源需求的不断增加和对可再生能源的广泛应用,企业对高效、智能的能源管理解决方案的需求也在迅速增长。储能技术不仅能够平衡电力供应与需求,还能够在电网高…

如何高效记录并整理编程学习笔记?

如何高效记录并整理编程学习笔记? 笔记工具选择 1、Typora 轻量化,简单好用 2、 飞书云文档 手机电脑都可以看,随时同步笔记。 笔记结构设计 做好清晰的标题,按照知识去分类。 Java基础知识 开源框架 中间件 实践与复习策略 只…

10、java程序流程控制之二:分支语句(switch-case结构)、循环结构(for循环)(经典案例)

java程序流程控制之二: Ⅰ、分支语句:switch-case1、switch-case 分支结构:其一、描述:其二、代码为:其三、截图为: 2、switch-case 分支结构的案例1:判断是否合格其一、描述:其二、…

HC32F460 IIC访问总结

IC 总线由一根时钟线( SCL),一根数据线( SDA)构成。所有的连接器件必须是漏 极开路输出。 SCL, SDA 线外接上拉电阻。电阻阻值取决于系统应用。 通常情况下,一个完整的通信过程包括下列 4 部分&…

人类的信仰从何而来?

原创 Kirill Nikitine 新发现科普书单 自人类诞生伊始,就不乏热衷于这个哲学基本问题的人士。基于近 15 个世纪以来多名伟大思想家发起的研究,科学家终于给出了答案。究其原因,人类学、神经学和文化因素促使人类拥有信仰。 在蒂姆・伯顿&…

执行start-dfs.sh后,datenode没有启动的最全解决办法(全网最全)

前言 在Hadoop中申请一个Flink的Session会话的时候出现了报错 报错内容 File /user/.flink/application_1723473994699_0002b/flink-table-api-java-uber-1.17.0.jar could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node…

docker stop pause 区别

先说区别 🛑 docker stop :通过发送 SIGTERM 信号来停止正在运行的容器,如果容器在宽限期后仍未停止,则发送 SIGKILL 信号。这将完全停止容器的进程。 ⏸️ docker pause :使用 cgroups 冻结器暂停正在运行的容器中的…

理解 Objective-C 中 +load 方法的执行顺序

在 Objective-C 中,load 方法是在类或分类(category)被加载到内存时调用的。它的执行顺序非常严格,并且在应用启动过程中可能会导致一些令人困惑的行为。理解 load 方法的执行顺序对调试和控制应用的初始化过程非常重要。 load 方…