报错原因:
在使用oracle的JDK时,JAR包必须签署特殊的证书才能使用。(具体是什么协议没查出来,惭愧)
方案一:
使用openJDK或者非oracle的JDK,这样就可以绕开证书的限制。该方案没实际操作过,还有个方案。
方案二:
1. 找到 java.security 在jvm安装地方 /path_to_your_jvm/jre/lib/security
2. 添加 security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
例如:
security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
3.添加扩展jar文件 还是在java安装目录,jre/lib/ext目录下,将bcprov-jdk15-135.jar 放进去,如果不行就换个版本,或者几个版本同时进去
方案三:如果方案二的第三步没有效果的情况下可以尝试,使用maven依赖仓库下载bcprov-jdk15-135.jar(本人亲测有效)
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15</artifactId>
<version>1.46</version>
</dependency>