加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

用Python配置JDK环境

发布时间:2020-12-17 17:09:08 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!usrbinenv python# -*- coding: utf-8 -*-'''设置JDK的环境变量,基本逻辑:若已有JAVA_HOME则替换其值,否则创建并添加PATH值'''import osimport

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!usrbinenv python
# -*- coding: utf-8 -*-
'''
设置JDK的环境变量,基本逻辑:
若已有JAVA_HOME则替换其值,否则创建并添加PATH值
'''
import os
import sys
import optparse

if sys.platform == 'win32':
    import _winreg #使用说明:https://docs.python.org/2/library/_winreg.html#

def configJDK(JDK_Path):
    '''设置JDK的环境变量,输入JDK的安装路径'''
    print("Now:")
    showEnv(["JAVA_HOME","Path","CLASSPATH"])
    print('n')
    setEnviron("JAVA_HOME",JDK_Path)
    
    BinDir = "%JAVA_HOME%"+os.sep+"bin"
    JreBinDir = "%JAVA_HOME%"+os.sep+"jre"+os.sep+"bin"
    updataEnviron("Path",[BinDir,JreBinDir])
    
    LibDir = "%JAVA_HOME%"+os.sep+"lib"
    LibTools = "%JAVA_HOME%"+os.sep+"lib"+os.sep+"tools.jar"
    updataEnviron("CLASSPATH",[os.curdir,LibDir,LibTools])
    #rebotExplorer()
def setEnviron(Env,Paths):
    print("Set %s = %s" % (Env,Paths))
    if sys.platform == 'win32':
        try:
            EnvironmentKey = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER,r"Environment")
            _winreg.SetValue(EnvironmentKey,Env,_winreg.REG_SZ,Paths)
        except WindowsError:
            "Faile To Control Reg... Are You Administrator?"
            sys.exit()
    else:
        print("Can't Work On your Platform Now!")
        sys.exit()

def getEnviron(Env):
    Paths = ''
    print("Get Environment Variables: %s" % Env)
    if sys.platform == 'win32':
        try:
            EnvironmentKey = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER,r"Environment")
            try:
                Paths,type = _winreg.QueryValueEx(EnvironmentKey,Env)
            except:
                print("There Is No Environment Variables: %s" % Env )
                print("Try To Make It")
                Paths=''
                setEnviron(Env,Paths)
            print("%s = %s " % (Env,Paths) )
        except:
            print("Faile To Control Reg... Are You Administrator?")
            sys.exit()
    else:
        Paths = os.environ.get(Env)
        if Paths == None:
            print("Can't Work On your Platform Now!")
            sys.exit()
    return Paths

def updataEnviron(Env,UpdateList):
    '''用UpdateList的值来更新Env环境变量'''
    print("nUpdating Environ %s with %s" % (Env,' and '.join(UpdateList) ) )
    OldPaths=getEnviron(Env)
    NewPaths = []
    if OldPaths != '':
        for Path in OldPaths.split(os.pathsep):
            if Path not in UpdateList:
                NewPaths.append(Path)
    NewPaths.extend(UpdateList)
    setEnviron( Env,os.pathsep.join(NewPaths) )

def rebotExplorer():
    os.system("taskkill /im explorer.exe /f")
    os.system("ping -n 2 127.0.0.1 > nul")
    os.system("start c:windowsexplorer.exe")
    import time
    time.sleep(3)

def showEnv(EnvList):
    for Env in EnvList:
        getEnviron( Env)

if __name__ == '__main__':
    configJDK(os.path.abspath(os.curdir))

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读