2022年 11月 4日

python需要jdk环境吗_用Python配置JDK环境

#!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))