用Python配置JDK环境
- 作者: 你猜我不告诉你
- 来源: 51数据库
- 2022-08-12
#!usr\bin\env python
# -*- coding: utf-8 -*-
'''
设置JDK的环境变量,基本逻辑:
若已有JAVA_HOME则替换其值,否则创建并添加PATH值
'''
import os
import sys
import optparse
if sys.platform == 'win32':
import _winreg #使用说明:http://www.51sjk.com/Upload/Articles/1/0/320/320281_20220812153504038.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))
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
