我已经安装了安全证书,但我遇到了问题。当我运行我的代码时
mvn exec:java -Dexec.mainClass="com.myproject.MyClass"
它工作正常。但是当我尝试将东西打包在一个 JAR 中并运行它时:
java -jar MyProject.jar
我得到一个
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 32 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 38 more
我用以下方法创建罐子:
mvn clean install jar:jar
在与 jar 相同的级别上,我有一个名为 的目录lib
,其中lib
包含所有依赖项。依赖项已添加到我的 jar 中的 MANIFEST.MF 文件中,它们的路径是正确的,行不会太长(每行一个依赖项)。
Maven 和 Java 使用相同的 JDK。它们通常也应该对类路径具有相同的依赖关系。但似乎java -jar
忽略了证书。
有人可以解释为什么会这样吗?
谢谢你。