尝试将 CA 证书导入到我的 Java 6 信任库并遇到此错误:
./keytool -v -import -trustcacerts -alias Rapidssl -file /Users/spurr/Desktop/rapidssl.cer -keystore /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts
Enter keystore password:
Certificate was added to keystore
[Storing /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts]
keytool error: java.io.FileNotFoundException: /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts (Operation not permitted)
java.io.FileNotFoundException: /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts (Operation not permitted)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
at java.io.FileOutputStream.<init>(FileOutputStream.java:84)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:902)
at sun.security.tools.KeyTool.run(KeyTool.java:172)
at sun.security.tools.KeyTool.main(KeyTool.java:166)
我也以 root 身份运行该命令,因此我认为我可以访问该 cacerts 密钥库位置。使用 Java 6。
我在启动 jnlp 文件时在 MacOS Big Sur 上遇到了类似的问题:
CouldNotLoadArgumentException[ Could not load file/URL specified: /Users/jhartman/Documents/Favorities/NCC/NCC 123.jnlp]
....
Caused by: java.io.FileNotFoundException: /Users/jhartman/Documents/Favorities/NCC/NCC 123.jnlp (Operation not permitted)
解决方案是:
/usr/bin/java
) 全磁盘访问权限/usr/bin/java
) 文件和文件夹访问下载、文档和文件夹的权限步骤
/usr/bin
,例如通过从终端调用:jhartman@MBP ~ % open /usr/bin
本地化
java
(和 keytool
)
打开系统偏好设置和安全与隐私。打开完整磁盘访问选项卡并授权
将步骤 1 中打开的 Finder 窗口中的
java
和 keytool
拖放到 完整磁盘访问 中的应用程序列表中
java
和keytool
这是我的问题的解决方案,但我希望它也能解决
keytool
问题。
当异常状态为
(Operation not permitted)
- 时,这似乎是 mac 特定问题
对于遇到此问题的其他人,您需要重新启动 Mac 并在启动时按 ⌘+R。然后进入实用程序 > 终端并输入以下命令:
csrutil disable
reboot
随后您应该能够将 cacerts 导入您的 Java 密钥库。导入该 cacert 后,不要忘记重新启用
csrutil
。重启,开机时按⌘+R,Utilities > Terminal,输入:
csrutil enable
reboot
我在 .metadata 目录下的文件中遇到了这个问题,因为我将 Eclipse 工作区放在了 Documents 下。通过进入“系统首选项”->“隐私”并添加对 Eclipse 的特定文件和文件夹的访问权限或提供 Eclipse 完整磁盘访问权限来解决此问题。