• 【丐版JDK管理工具-Daen-JDKMAN-V1.0】Python实现JDK多版本切换管理工具V1.0,已打包成EXE


    🧑‍💻作者名称:DaenCode
    🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
    😎人生感悟:尝尽人生百味,方知世间冷暖。
    📖所属专栏:工具合集


    在这里插入图片描述


    专栏推荐

    • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
    • SpringBoot实战相关专栏,包含SpringBoot过滤器、拦截器、AOP实现日志、整合Freemaker、整合Redis等等实战相关内容,多篇文章登入全站热榜、领域热榜、被技术社区收录。链接>>>>>>《SpringBoot实战》

    🌟前言

    在学习或者工作中,可能会使用到多个版本的JDK,每次修改环境变量都很麻烦。因此,在这里我现学现卖,使用Python结合bat脚本,通过命令实现了一个多版本JDK切换的小工具。

    多版本JDK管理工具也有开源的JENV、SDKMAN等。但还是感觉自己写的顺手一点并且功能也没有冗余,还可以学习Python知识。


    🌟效果预览

    在这里插入图片描述


    🌟具体实现

    思路分析

    1. 通过Python中的subprocess,调用bat命令中的setx命令来修改系统的环境变量。
    2. 通过引入配置文件的方式,实现JDK版本路径的统一管理。
    3. 通过命令来具体切换相应的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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    JDK配置文件:用于存放当前电脑中已经安装的JDK路径。格式JDK_版本号=路径
    在这里插入图片描述


    🌟使用步骤

    1.下载本文压缩包。
    2.解压完成后,进入到Daen-JDKMAN文件夹,找到jdk.conf文件。将本地电脑中的JDK安装目录配置到配置jdk.conf文件中。

    JDK_{version}=你的安装路径
    
    • 1

    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多版本切换管理工具到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。

    最后,创作不易,请尊重原创!!!


    请添加图片描述

  • 相关阅读:
    Mybatis-Plus主键生成策略
    软件设计模式(五):代理模式
    写前端组件的记录
    Unity 声音的控制
    新增book.html,页面功能是写书和读书 chatGPT
    JavaScript 数据结构与算法2(队列和双端队列)
    超详细spring boot笔记
    MySQL8.0安装教程,在Linux环境安装MySQL8.0教程,最新教程 超详细
    Day59 下一个更大元素Ⅱ + 接雨水
    Shiro学习之SpringBoot整合(2)
  • 原文地址:https://blog.csdn.net/2302_79094329/article/details/132805620