专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - SpringBoot实战相关专栏,包含SpringBoot过滤器、拦截器、AOP实现日志、整合Freemaker、整合Redis等等实战相关内容,多篇文章登入全站热榜、领域热榜、被技术社区收录。
链接>>>>>>
《SpringBoot实战》
文章目录
- 专栏推荐
- 🌟前言
- 🌟效果预览
- 🌟具体实现
- 🌟使用步骤
- 🌟写在最后
🌟前言
在学习或者工作中,可能会使用到多个版本的JDK,每次修改环境变量都很麻烦。因此,在这里我现学现卖,使用Python结合bat脚本,通过命令实现了一个多版本JDK切换的小工具。
多版本JDK管理工具也有开源的JENV、SDKMAN等。但还是感觉自己写的顺手一点并且功能也没有冗余,还可以学习Python知识。
🌟效果预览
🌟具体实现
思路分析:
- 通过Python中的subprocess,调用bat命令中的setx命令来修改系统的环境变量。
- 通过引入配置文件的方式,实现JDK版本路径的统一管理。
- 通过命令来具体切换相应的JDK版本。
核心代码
import subprocess
def switch_jdk():
print("Command List")
print("switch [version] --切换jdk")
print("jdk list --jdk列表")
print("exit")
while True:
subprocess.call("cls", shell=True)
command = input("请输入指令:")
version = command.split()[1]
#解析用户输入的指令,获得将要切换的版本号
if command==f"switch {version}":
jdk_path = getJdkPath(version)
subprocess.run(['setx', 'JAVA_HOME', jdk_path, '/M'], shell=True, check=True)
print(f"切换JDK_{version}成功!")
input("按任意键继续...")
elif command == "jdk list":
obtainJdkList()
elif command == "exit":
break
else:
print("无效的选项,请重新选择!")
input("按任意键继续...")
continue
#读取配置文件
def readFileContent():
# 读取jdk配置路径
try:
# 读取jdk配置路径
with open("jdk.conf", 'r', encoding="UTF-8") as file:
content = file.read()
return content
except FileNotFoundError:
print("文件不存在")
except IOError:
print("文件读取错误")
#获取jdk列表
def obtainJdkList():
content=readFileContent()
lines = content.split("\n")
for line in lines:
if "=" in line:
key = line.split("=")[0]
print(key)
def getJdkPath(version):
try:
content=readFileContent()
# 分割文件内容为每一行,并遍历查找指定版本的路径
lines = content.split("\n")
for line in lines:
if "=" in line:
key, value = line.split("=")
if key == f"JDK_{version}":
return value
except FileNotFoundError:
print("文件不存在")
return None
except IOError:
print("文件读取错误")
return None
switch_jdk()
JDK配置文件:用于存放当前电脑中已经安装的JDK路径。格式JDK_版本号=路径
🌟使用步骤
1.下载本文压缩包。
2.解压完成后,进入到Daen-JDKMAN文件夹,找到jdk.conf文件。将本地电脑中的JDK安装目录配置到配置jdk.conf文件中。
JDK_{version}=你的安装路径
3.操作命令现在有两个,如下:
- jdk list-查看当前jdk列表
- switch {version}-切换至目标jdk。注意version为配置文件中的JDK_{version}。比如说配置文件中配置的是JDK_1.8.131=你的路径,则执行命令
switch 1.8.131
切换至目标JDK。
4.另外需要注意:如果提示错误,需要以管理员身份运行Pycharm或者Daen-JDKMAN.exe
。
🌟写在最后
有关于Python实现JDK多版本切换管理工具到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。