keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问。)

前情提示

证书导入到 JRE security 中

解决

使用超级管理权限,赋予证书可读可写权限

keytool一些操作

导入证书

注意:路劲中不可有空格
文中zwyq.govpay.ccb.com为测试别名

keytool -importcert -alias 别名 -file 证书文件 -keystore 密钥库 -storepass 密钥库密码  
有空格报错,可以把文件放到目录下使用相对定位
keytool -import -trustcacerts -alias zwyq.govpay.ccb.com -file C:/Program Files/Java/jre1.8.0_231/lib/security/cacert.cer -keystore C:/Program Files/Java/jre1.8.0_231/lib/security/cacerts -storepass changeit

cd C:/Program Files/Java/jre1.8.0_231/lib/security

keytool -import -trustcacerts -alias zwyq.govpay.ccb.com -file cacert.cer -keystore cacerts -storepass changeit

在这里插入图片描述

以后更新时,先删除原来的证书,然后导入新的证书
查看证书,密钥(yue)口令:changeit

cd C:/Program Files/Java/jre1.8.0_231/lib/security
keytool -list -keystore cacerts -alias zwyq.govpay.ccb.com

在这里插入图片描述

删除证书

keytool -delete -alias zwyq.govpay.ccb.com -keystore cacerts
### 解决 `keytool` 操作时遇到的 `FileNotFoundException` 错误 当执行 `keytool` 命令并收到错误提示 `java.io.FileNotFoundException: MyAndroidKey.keystore (拒绝访问)` 时,这通常意味着程序无法找到指定文件或无权对其进行操作。以下是几种可能的原因及对应的解决方案: #### 文件路径不正确 如果指定了错误的路径或者相对路径解析失败,则可能导致找不到目标 `.keystore` 文件。 建议使用绝对路径来调用 keystore 文件,并确认该位置确实存在所需的 .keystore 文件[^1]。 ```bash $ keytool -list -v \ -alias alias_name \ -keystore /absolute/path/to/MyAndroidKey.keystore \ -storepass password ``` #### 权限不足 操作系统级别的权限设置可能会阻止 Java 应用读取或写入特定目录下的文件。对于这种情况, 应当检查当前用户的权限是否允许对该文件进行相应的读写操作;必要时可以尝试更改文件所属者或赋予更高的权限位[^2]。 在 Linux 或 macOS 上可以通过如下命令修改文件属性: ```bash chmod u+rwx /path/to/file.keystore # 给予所有权限给用户本身 chown $USER:$USER /path/to/file.keystore # 将所有权转移至当前登录账户 ``` 而在 Windows 中则需通过右键点击文件 -> 属性 -> 安全选项卡来进行相应调整。 #### 特殊情况处理 有时即使拥有适当权限也可能因为其他原因而遭遇此异常。例如,在某些情况下,macOS 可能会因 SIP(System Integrity Protection)保护机制而导致 "Operation not permitted" 的问题发生[^3]。 针对此类特殊情形,可考虑临时关闭 SIP 功能后再试一次(注意:这不是推荐的做法),或者寻找替代方法绕过这个问题。 另外值得注意的是,确保所使用的 JDK 是最新版本也很重要,旧版可能存在已知 bug 导致类似的兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JaneYork

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值