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

news/2025/1/15 7:46:27/

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:机器人技术中的任务规范有多种形式,例如模仿一次性演示、遵循语言说明和达到目标。它们…