添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本地运行没有问题,打包后在服务器运行报错信息:

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

导致该错误的原因是因为本地版本过低与服务器版本不匹配,根本原因是CurveDB是用来实现国密tls的依赖包。jdk 在1.8的不同版本中该包位置有变动,较低版本为sun.security.ec.CurveDB, 较高版本为sun.security.util.CurveDB。jdk为1.8.0_301版本以上,需引用sun.security.util.CurveDB

解决方案一:修改项目代码和依赖配置,将本地版本升到与服务器一致,该改动较大由于时间原因未采用;

解决方案二:将服务器版本降低,该过程遇到新的问题:

yum search java|grep jdk

查看jdk列表版本都较高,没有想要的jdk_1.8.0_231;
在网上找到使用wget下载的方法但是获取不到jar,迫于无奈在网盘上下载已有的jdk-8u231-linux-x64.tar.gz下载上传服务器,解压配置环境,成功部署项目,
链接: https://pan.baidu.com/s/1D9oKuA5AFb0g9BEMte7C-w?pwd=ve2e 提取码: ve2e

本地运行没有问题,打包后在服务器运行报错信息: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.cryp
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
&lt;dependency&gt; &lt;groupId&gt; java x.xml.bind&lt;/groupId&gt; &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt; &lt;version&gt;2.3.0&lt;/version&gt;
错误记录 - IO流出现 Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" File file = new File("hello.txt"); System.out.println(file.getAbsoluteFile()); File file1 = new File("File\\hello.txt"); System.ou.
在linux系统中 运行 jar 包主要有以下几种方式。 一、 java - jar XXX. jar 最基本的 jar 包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。 二、 java - jar XXX. jar & &代表在后台 运行 ,使用ctrl+c不会中断程序的 运行 ,但是关闭窗口会中断程序的 运行 。 三、nohup java - jar XXX. jar & 使用这种方式 运行 的程序日 IDEA启动 java 项目,报错: java .lang.reflect.inaccessibleobjectexception unable to make jdk.internal.loader.classloaders 解决方案1: 我的原因是因为IDEA的 java 的SDK有 问题 ,我手动从 java version 11改成了我本地的1.8版本,重启项目就好了。 点击IDEA的file-> 点击Project Structure: 网上有搜到这个方案,如果方案1不行的话,可以尝试再搜索
final URLClassLoader urlClassLoader = (URLClassLoader) MyClass.class.getClassLoader(); final Method addURL = URLClassLoader.class.getDeclaredMethod("addURL", URL.class); ad...
有时,安装软件时可能会出现依赖性 问题 。这意味着软件需要其他软件才能正常工作。要解决这个 问题 ,请使用yum命令并添加“-y”选项,如下所示: sudo yum install 软件包名称 -y 4. 更新软件包 要更新已安装的软件包,请使用以下命令: sudo yum update 5. 解决网络连接 问题 如果您的CentOS 7.6系统无法连接到互联网,请检查网络设置并确保您的网络连接正常。您还可以尝试使用以下命令来解决网络连接 问题 : sudo systemctl restart network 以上是CentOS 7.6安装软件和解决 问题 的方法。希望这些信息能够帮助您。