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

时间:2017-01-19 16:57:06

标签: 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)

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

3 个答案:

答案 0 :(得分:2)

当异常状态为(Operation not permitted) -

时,这似乎是一个特定于mac的问题

对于遇到此问题的其他人,您需要重新启动Mac并在启动时按⌘+ R.然后进入Utilities&gt;终端并键入以下命令:

csrutil disable
reboot

您应该可以在此之后将cacerts导入Java密钥库。导入该cacert后,请不要忘记重新启用csrutil。重新启动,启动时按⌘+ R,实用程序&gt;终端,输入:

csrutil enable
reboot

答案 1 :(得分:2)

启动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)

解决方案是:

  • 提供Java(/usr/bin/java完整磁盘访问权限
  • 提供Java(/usr/bin/java文件和文件夹访问下载,文档和文件夹

步骤

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

  2. 打开系统偏好设置安全与隐私。打开全盘访问标签并授权

  3. 从在步骤1中打开的Finder窗口中拖动javakeytool,然后将其拖放到 Full Disk Access

    中的“应用程序”列表中。

enter image description here

  1. 转到安全性和隐私权-> 文件和文件夹,勾选javakeytool的Downloads文件夹和文档文件夹

enter image description here

这是解决我问题的方法,但我希望它也应该解决keytool问题。

答案 2 :(得分:0)

我在.metadata目录下的文件中遇到了这个问题,因为我将Eclipse工作区放在Documents下。通过进入“系统偏好设置”->“隐私”并添加对Eclipse的特定文件和文件夹的访问权限或授予Eclipse完整磁盘访问权限来解决此问题。