相关文章推荐

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.CurveDB import sun.security.util.CurveDB

CurveDB是用来实现国密tls的依赖包。jdk 在1.8的不同版本中该包位置有变动,较低版本为sun.security.ec.CurveDB, 较高版本为sun.security.util.CurveDB。首先检查本地安装的JDK版本或者IDE运行项目配置的JDK版本,如果jdk为1.8.0_301版本以上,需引用sun.security.util.CurveDB。如果是其它依赖的jar包项目报错,则要么修改源码,要么就将JDK修改到指定的版本。Exception in thread
java . lan g. NoClassDefFoundError : java x/validation/valueextraction/ValueExtractorD ec larationException  今天部署环境遇到这个 问题 ,查了好长时间终于 解决 了; 问题 原因: 由于jar包hibernate-validator、validation-api 不兼容。 解决 方案: (1). 简单粗暴:根据需求删除不兼容的jar包,删除jar包必须在保证代码没有使用的情况下,不知道的尽量别删除; (2). 解决 兼容 问题 : 版本不兼容,就找兼容版本。  升级hibernate-validator版本:
NoClassDefFoundError 最近在使用 Redisson 框架实现分布式锁的时候,在项目启动之后,报错: 类的定义没有找到, 根本原因是 ClassNotFoundException , 但是在编译的时候,并没有报错,运行本地的测试类来进行创建对应的对象也没有 问题 创建的测试类如下, import org.junit.Test; import org.redisson.Redisso...
每个线程有一个PC Register程序计数器,然后就是栈区间,每个线程有一个栈内存,栈内存里又分栈帧,详见并发编程。 本地方法栈(native method stack),方法区(类的信息,常量,方法信息),堆区(最大的空间,创建的对象放在堆区) class file ->JVM->DNA元数据模板(放在方法区)->通过构造方法,创造实例放在堆内存 分为解释器
A friend of mine wanted to start to learn java , and I wanted to help him, so we created a simple Hello World example. public class Hello { public static void main(String argv[]) { system.out.pr...
java . lan g.ClassNotFoundException的 解决 方法: 1. java 运行环境的jdk版本比class文件的编译版本低了导致 2.class文件的访问权限或者所在目录的访问权限有 问题 ,导致 java 无法读这个文件 3.jar包有错误,查看jar是否有漏或者重新导入jar包出现 java . lan g.classnotfoundexception 问题 真的是很烦人,找资料 解决 问题 弄了半天时间都没找到方法,走了许多的弯路,最终还是回到了原点找到了 问题 解决 办法,费尽心机最终是 解决 了,但过 https://www.bilibili.com/video/BV1PJ411n7xZ P01-JVM内存与垃圾回收篇概述 09:34 P02-如何看待 Java 上层技术与JVM 20:17 P03-为什么要学习JVM 05:14 P04-面向人群和课程特点 10:15 P05-官方规范下载与参考书目 08:30 P06-跨平台的语言 Java 和跨语言的平台JVM 15:22 P07-字节码与多语言混合编程 06:25
使用 java . security 解p12时,出现Unknown named curve : 1.2.156.10197.1.301错误的 解决 方法: Pattern localPattern = Pattern.compile(",|\[|\]"); Curve DB .add("SM2", "1.2.156.10197.1.301", 1, p, a, b, n, gx, gy, 1, localPatt...