我是靠谱客的博主 健壮白云,最近开发中收集的这篇文章主要介绍java.lang.NoClassDefFoundError: sun/security/ec/CurveDB问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CurveDB是用来实现国密tls的依赖包。jdk 在1.8的不同版本中该包位置有变动,较低版本为sun.security.ec.CurveDB, 较高版本为sun.security.util.CurveDB。

首先检查本地安装的JDK版本或者IDE运行项目配置的JDK版本,
如果jdk为1.8.0_202版本以上,需引用sun.security.util.CurveDB。

如果是其它依赖的jar包项目报错,则要么修改源码,要么就将JDK修改到指定的版本。

Exception in thread "main" java.lang.NoClassDefFoundError: sun/security/ec/CurveDB
	at org.chainmaker.sdk.crypto.ChainmakerX509CryptoSuite.enableX509CertificateWithGM(ChainmakerX509CryptoSuite.java:293)
	at org.chainmaker.sdk.crypto.ChainmakerX509CryptoSuite.<clinit>(ChainmakerX509CryptoSuite.java:72)
	at org.chainmaker.sdk.User.<init>(User.java:62)
	at org.chainmaker.sdk.ChainManager.createChainClient(ChainManager.java:98)
	at chainmaker.sdk.demo.InitClient.inItChainClient(InitClient.java:71)
	at chainmaker.sdk.demo.DemoApplication.main(DemoApplication.java:14)
Caused by: java.lang.ClassNotFoundException: sun.security.ec.CurveDB
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	... 6 more

针对很多人问怎么修改源码问题,我们可通过查看异常日志,找到引用此类的主类。如上边异常日志中的org.chainmaker.sdk.crypto.ChainmakerX509CryptoSuite,把此类的源码找到,然后修改修改import sun.security.ec.CurveDBimport sun.security.util.CurveDB

 

最后

以上就是健壮白云为你收集整理的java.lang.NoClassDefFoundError: sun/security/ec/CurveDB问题解决的全部内容,希望文章能够帮你解决java.lang.NoClassDefFoundError: sun/security/ec/CurveDB问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部