前言
呵呵 这是某技术交流群里面暴露出的一个问题
大致存在的情况是 oracle jdk19 执行 spring-boot 打包使用 bouncycastle.bcprov 的类库, 执行报错, 报错如下
但是奇怪的是 直接执行该 主类, 是可以正常执行的
另外 使用 openjdk19, 也是可以正常执行的
master:~ jerry$ /Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home/bin/java -jar /Users/jerry/IdeaProjects/HelloSpringBoot/target/HelloSpringBoot-0.0.1.jar
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.security.NoSuchProviderException: JCE cannot authenticate the provider BC
at java.base/javax.crypto.JceSecurity.getInstance(JceSecurity.java:131)
at java.base/javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:286)
at com.hx.boot.Test23BcprovCodecNotFound.digest(Test23BcprovCodecNotFound.java:28)
at com.hx.boot.Test23BcprovCodecNotFound.main(Test23BcprovCodecNotFound.java:24)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
... 5 more
Caused by: java.util.jar.JarException: The JCE Provider jar:file:/Users/jerry/IdeaProjects/HelloSpringBoot/target/HelloSpringBoot-0.0.1.jar!/BOOT-INF/lib/bcprov-jdk18on-1.71.jar!/ is not signed.
at java.base/javax.crypto.JarVerifier.verifySingleJar(JarVerifier.java:464)
at java.base/javax.crypto.JarVerifier.verifyJars(JarVerifier.java:317)
at java.base/javax.crypto.JarVerifier.verify(JarVerifier.java:260)
at java.base/javax.crypto.ProviderVerifier.verify(ProviderVerifier.java:130)
at java.base/javax.crypto.JceSecurity.verifyProvider(JceSecurity.java:190)
at java.base/javax.crypto.JceSecurity.getVerificationResult(JceSecurity.java:218)
at java.base/javax.crypto.JceSecurity.getInstance(JceSecurity.java:128)
... 9 more
该问题交流的上下文如下, 日期是 2022-10-11
北京-哇咔咔 10:38:44
我有一个问题,jdk1