Python配置JDK编程环境,pythonjdk编程,用Python配置JDK
Python配置JDK编程环境,pythonjdk编程,用Python配置JDK
用Python配置JDK环境,将.py文件放置在安装后的JDK文件夹下,或解压后的JDK文件夹下。运行即可完成环境配置,目前仅支持Windows系统,通过操作注册表进行配置。推荐使用官方JDK下载安装,然后配置。今天发现此代码无效,试图删除之,但被拒绝。特此声明!
首先,代码中使用的_winreg.SetValue函数添加的是子项,哪怕给他指定了_winreg.REG_SZ最终他也是先建立子项然后在项中创建_winreg.REG_SZ的默认值,结果就是无效。尝试_winreg.SetValueEx证明此函数能够实现创建子键值,但遇到WindowsError:[Error5],权限问题,痛苦的是不论如何尝试,始终有这个问题。。。。若有牛人解决之,这个脚本就能有效了。。。。。。
1.[文件] configJDK.py~3KB
#!usr\bin\env python# -*- coding: utf-8 -*-'''设置JDK的环境变量,基本逻辑:若已有JAVA_HOME则替换其值,否则创建并添加PATH值'''import osimport sysimport optparseif 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 Pathsdef 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))2000
编橙之家文章,
相关内容
- python提取京东商品url获取产品价格,python产品价格,京东
- python代码查询市级城市天气,python代码查询,python代码查
- 自动更新高清电影文件中文名python代码,高清python,自动
- 拉手网Python程序员面试题,拉手python,拉手网Python程序员
- 用python xmlrpc调用实现发布博文,pythonxmlrpc,用python xml
- python核心编程题代码实现,python核心编程代码,python核心
- python模块arcpy-要素工具箱脚本合集,pythonarcpy-,1.[代码
- pyhton麻将胡牌听牌判断,pyhton麻将胡牌,pyhton麻将胡牌听
- python实现jpg图片文字转成pdf格式,,python实现jpg图
- python du熊学斐波那契实现,python熊学,python du熊学斐
评论关闭