当前位置:   article > 正文

UnsatisfiedLinkError: /tmp/librocksdbjni5415780267701769402.so: /tmp/librocksdbjni541578026770176940

librocksdbjni

启动报错:

threw exception; nested exception is java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni5415780267701769402.so: /tmp/librocksdbjni5415780267701769402.so: failed to map segment from shared object

发生这种错误多半是国产操作系统环境下启动nacos出现的错误,网上都是什么nacos未适配arm处理器,或者是/tmp目录挂载问题,其实根本就不是这个原因。

真实原因和解决方案:

原因:naocs会通过JNI技术调用rocksdb的库文件,首先从系统库文件目录java.library.path查找rocksdbjni.so文件,如果找不到再查找rocksdbjni-linux-平台.so文件,再找不到会从jar中将指定so文件复制到临时目录(通过ROCKSDB_SHAREDLIB_DIR指定,未指定则File.createTempFile),再去加载该文件,但是安全版操作系统无法执行

设置java.library.path的两种方式:

1、通过启动参数设定 java -Djava.library.path=/jni/library/path Test

2、JVM启动时,会使用系统变量LD_LIBRARY_PATH的值来初始化java.library.path属性

以上逻辑来自以下源码:

rocksdbjni-xxx.jar中Rock

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/561595
推荐阅读
相关标签
  

闽ICP备14008679号