我有一个使用 Java 6 版本编译的第三方 java 包,这个包部署在 java 8 环境中。现在我在运行时看到以下异常。
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: sun/security/x509/CertAndKeyGen
at com.xxx.ws.security.impl.DefaultSecurityStore.generateSelfSignedEntry(Unknown Source)
at com.xxx.ws.security.impl.SecurityPluginUtil.sign(Unknown Source)
at com.xxx.ws.security.impl.ProcessingContext.processOutbound(Unknown Source)
at com.xxx.ws.security.impl.BaseSecurityEnvironment.secureOutboundMessage(Unknown Source)
at com.xxx.em.launch.message.LaunchRequestMessage.sendTo(Unknown Source)
我对此异常进行了研究,发现 Java 8 将CertAndKeyGen
类移到了sun.security.tools.keytool
包中。但是在这种情况下,这个包是使用 java 6 编译的,并且引用sun.security.x509.CertAndKeyGen
package.json 。缓解此问题的替代方法可能是什么。. 谢谢你的时间。