Keytool 认为 cacerts 不存在
Keytool thinks cacerts doesn't exist
我正在使用 OpenJDK 8(从 https://jdk.java.net/java-se-ri/8 下载并解压缩,添加到 PATH),但我 运行 遇到了证书错误。
经过调查,我意识到 cacerts 存在问题。
运行 keytool -list -keystore cacerts
returns 一个错误:keytool error: java.lang.Exception: Keystore file does not exist: cacerts
,
但是运行keytool -list -keystore "C:\development\exec\cmd\jdk8\jre\lib\security\cacerts"
给我一份实际证书的列表。 JAVA_HOME
确实指向
C:\development\exec\cmd\jdk8
和 PATH
确实有条目 %JAVA_HOME%\bin
。我应该如何配置 java 以在正确的位置查找 cacerts?
java -version
returns 以下内容:
openjdk version "1.8.0_40"
OpenJDK Runtime Environment (build 1.8.0_40-b25)
OpenJDK Client VM (build 25.40-b25, mixed mode)
看起来这个问题是基于一个错误的前提 - 没有像 keytool 会查看的默认信任库位置这样的东西,它只是在当前目录中查找给定的文件。
我在安装 Oracle JDK 8 并重复上述步骤后意识到了这一点。我从来没有想过 运行 来自 %JAVA_HOME%\jre\lib\security
的 keytool;我从一个项目的目录中保留了 运行ning 它,该项目的构建由于存储库连接错误而失败。我最初遇到的实际问题是 OpenJDK cacerts 文件是空的;我用从另一个 JRE 8 安装中获取的 cacerts 替换了它,之后从未想过重试构建。
我正在使用 OpenJDK 8(从 https://jdk.java.net/java-se-ri/8 下载并解压缩,添加到 PATH),但我 运行 遇到了证书错误。
经过调查,我意识到 cacerts 存在问题。
运行 keytool -list -keystore cacerts
returns 一个错误:keytool error: java.lang.Exception: Keystore file does not exist: cacerts
,
但是运行keytool -list -keystore "C:\development\exec\cmd\jdk8\jre\lib\security\cacerts"
给我一份实际证书的列表。 JAVA_HOME
确实指向
C:\development\exec\cmd\jdk8
和 PATH
确实有条目 %JAVA_HOME%\bin
。我应该如何配置 java 以在正确的位置查找 cacerts?
java -version
returns 以下内容:
openjdk version "1.8.0_40"
OpenJDK Runtime Environment (build 1.8.0_40-b25)
OpenJDK Client VM (build 25.40-b25, mixed mode)
看起来这个问题是基于一个错误的前提 - 没有像 keytool 会查看的默认信任库位置这样的东西,它只是在当前目录中查找给定的文件。
我在安装 Oracle JDK 8 并重复上述步骤后意识到了这一点。我从来没有想过 运行 来自 %JAVA_HOME%\jre\lib\security
的 keytool;我从一个项目的目录中保留了 运行ning 它,该项目的构建由于存储库连接错误而失败。我最初遇到的实际问题是 OpenJDK cacerts 文件是空的;我用从另一个 JRE 8 安装中获取的 cacerts 替换了它,之后从未想过重试构建。