生成上传密钥时keytool报错my-upload-key.keystore访问被拒绝如何解决
报错信息:
java.io.FileNotFoundException: my-upload-key.keystore (Access is denied)
报错详情截图:
引发原因
- 执行keytool命令的当前工作目录为系统受保护目录,普通用户无写入权限:常见为Windows的C盘根目录、Program Files目录,Linux/macOS的/根目录、/usr等系统级目录
- 目标路径下已存在同名
my-upload-key.keystore文件,该文件被设为只读属性,或正被其他进程(如Java程序、密钥管理工具)占用 - Windows系统未以管理员身份运行终端,UAC限制了文件写入权限
- Linux/macOS下执行命令的用户对目标保存目录无写入权限,或命令中指定的密钥文件上级目录不存在
排查解决方法
- 切换工作目录到用户个人路径后重新执行命令
Windows端可切换到桌面路径:cd C:\Users\你的实际用户名\Desktop
Linux/macOS端可切换到用户主目录:cd ~ - 检查目标路径下是否存在同名只读文件:如果确认无需保留现有同名文件可直接删除后重试;如果需要保留可修改文件权限取消只读属性,或在keytool命令中修改
-keystore参数后的文件名生成新密钥库 - 提升终端运行权限:Windows端右键点击命令提示符/PowerShell,选择「以管理员身份运行」后再执行命令;Linux/macOS确需在系统目录生成文件的,可在keytool命令前加
sudo临时提权执行,生成后注意调整文件权限避免未授权访问 - 检查命令中的密钥保存路径:如果
-keystore参数指定了完整路径,需确认路径中的所有上级目录已提前创建,例如指定路径为./cert/my-upload-key.keystore时,需要先新建cert目录再执行keytool命令
内容的提问来源于stack exchange,提问作者Rahul Prasad
相关产品推荐
相关产品推荐


