我正在使用OpenJDK 8(已从https://jdk.java.net/java-se-ri/8下载并解压缩,已添加到PATH中),并且遇到证书错误。
经调查,我发现cacerts存在问题。
运行keytool -list -keystore cacerts
返回错误: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
返回以下内容:
openjdk version "1.8.0_40"
OpenJDK Runtime Environment (build 1.8.0_40-b25)
OpenJDK Client VM (build 25.40-b25, mixed mode)
答案 0 :(得分:2)
问题似乎是基于不正确的前提而定-keytool不会查找默认信任库位置之类的东西,而只是在当前目录中查找给定文件。
在安装Oracle JDK 8并重复上述步骤之后,我意识到了这一点。我只是从未想过要从%JAVA_HOME%\jre\lib\security
运行keytool;我一直从由于存储库连接错误而导致构建失败的项目的目录中继续运行它。我最初遇到的实际问题是OpenJDK cacerts文件为空;我用从另一个JRE 8安装中获得的cacerts替换了它,从没想过会在此之后重试该构建。