- #!usr\\bin\\env 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:\\windows\\explorer.exe")
- import time
- time.sleep(3)
- def showEnv(EnvList):
- for Env in EnvList:
- getEnviron( Env)
- if __name__ == '__main__':
- configJDK(os.path.abspath(os.curdir))
- #该片段来自于http://www.codesnippet.cn/detail/2711201411087.html
来源: http://www.codesnippet.cn/detail/2711201411087.html