java.io.FileNotFoundException:(不允许操作)./keytool -mac osx上的导入错误(el capitan)-Java 6

Pur*_*uit 5 java ssl ssl-certificate

尝试将CA Cert导入我的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)
Run Code Online (Sandbox Code Playgroud)

我也以root用户身份运行该命令,因此我认为我可以访问该cacerts密钥库位置。使用Java 6。

Pur*_*uit 6

当异常状态时,这似乎是特定于 mac 的问题(Operation not permitted)-

对于遇到此问题的其他人,您需要重新启动 Mac 并在启动时按 ?+R。然后进入 Utilities > Terminal 并输入以下命令:

csrutil disable
reboot
Run Code Online (Sandbox Code Playgroud)

在此之后,您应该能够将 cacerts 导入您的 Java 密钥库。csrutil导入该 cacert 后,不要忘记重新启用。重启,开机按?+R,Utilities > Terminal,输入:

csrutil enable
reboot
Run Code Online (Sandbox Code Playgroud)


Jar*_*rek 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)
Run Code Online (Sandbox Code Playgroud)

对此的解决方案是:

  • 授予 Java ( /usr/bin/java)全盘访问权限
  • 授予 Java ( /usr/bin/java)文件和文件夹访问下载、文档和文件夹的权限

脚步

  1. /usr/bin在 Finder 中打开,例如通过从终端调用:
jhartman@MBP ~ % open /usr/bin
Run Code Online (Sandbox Code Playgroud)
  1. 本地化java(和keytool

  2. 打开系统偏好设置安全与隐私。打开完整磁盘访问选项卡并授权

  3. 从在步骤 1 中打开的 Finder 窗口中拖动javakeytool拖放到完全磁盘访问中的应用程序列表

在此处输入图片说明

  1. 转到Security & Privacy -> Files and Folders,勾选 Downloads Folder and Document Folder for javaandkeytool

在此处输入图片说明

这是我的问题的解决方案,但我希望它也能解决keytool问题。

  • 如果即使提供所需的权限并重新启动后问题仍然存在,请将所需的文件移动到 src/main/resources 文件夹中。 (2认同)