我正在尝试使用python脚本在后台静默安装Java。路径正确,并已通过isfile验证。我收到“拒绝访问”异常。我正在以本地计算机上的管理员身份运行它。

subprocess.Popen('C:\Users\xUser\jdk-8u45-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"');


错误返回

WindowsError: [Error 5] Access is denied

最佳答案

您是否在常规终端中运行此程序?在Windows中,您需要专门为管理特权打开终端:


在“开始”菜单搜索窗口中,键入cmd,然后按Ctrl + Shift + Enter。或者,导航至所有程序>附件>右键单击命令提示符,然后单击Run as administrator
在此新终端中运行python脚本。


编辑:搜索会导致导航到安装程序所在的目录后执行命令也可能会出现问题;参见WindowsError [error 5] Access is denied

install_dir=r"C:\Users\xUser\"
assert os.path.isdir(install_dir)
os.chdir(install_dir)
subprocess.Popen('jdk-8u45-windows-x64.exe /s ADDLOCAL="ToolsFeature,SourceFeature"')


最后,对于Unix,我总是使用一系列命令(不确定Windows是否需要),而不是一个长字符串,例如

subprocess.Popen(['jdk-8u45-windows-x64.exe', '/s', 'ADDLOCAL="ToolsFeature,SourceFeature"'])

08-18 15:16