Native Library xxx.so already loaded in another classloader 的解决方法

1、症状

如果JBoss上的两个web应用需要使用相同的JNI本地库,当第二个web应用加载JNI本地库时,就会出现Native Library xxx.so already loaded in another classloader错误

2、原因

 Java虚拟机为了在JNI本地库中确保基于classloader的命名空间隔离,因而不允许一个JNI本地库被两个不同的classloader加载。而JBoss中web应用的classloader是独立的,也就是说每个web应用都有一个专属的classloader,这样就出现两个classloader加载同一JNI本地库的情况

3、解决方法

在JBoss AS中,虽然不同的web应用使用不同的classloader,但是web应用classloader的父classloader是相同的,这样根据双亲委托模型只要让父classloader加载JNI本地库就可以避免被多个classloader加载。父classloader的classpath为JBoss AS配置(default、all或minimal)的lib目录,因而只要将JNI class单独发布成jar包,并放在配置(default、all或minimal)的lib目录中,问题就可以解决



相关推荐

光电容积脉搏波PPG信号分析笔记

脉搏波信号PPG分析笔记

teresa_zp的专栏 6474

解决”java.lang.UnsatisfiedLinkError: Native Library .dll already loaded in another classloader”的问题...

JAVA启动后,是经过JVM各级ClassLoader来加载各个类到内存。为了更加了解加载过程,我通过分析和写了一个简单的ClassLoader来粗浅的分析它的原理。 JVM的ClassLoader分三层,分别为Bootstrap ClassLoader,Extension ClassLoader,System ClassLoader,他们不是类继承的父子关系,是逻辑上的上下级关系。 Boot...

weixin_30791095的博客 1525

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1338

解决:java.lang.UnsatisfiedLinkError: Native Library *.dll already loaded in another classloader报错

@[BUG调试] 解决:java.lang.UnsatisfiedLinkError: Native Library *.dll already loaded in another classloader报错 一、报错:java.lang.UnsatisfiedLinkError: Native Library *.dll already loaded in another classloader...

55555的博客 4343

腾讯滑块验证码collect参数逆向与JSVMP对抗实战

本文深入解析腾讯滑块验证码collect参数的逆向过程与JSVMP虚拟机对抗技术。通过详细的环境搭建、抓包分析和JSVMP逆向技巧,揭示collect参数的生成逻辑与加密流程,并提供完整的模拟实现方案和常见问题排查方法,助力开发者突破腾讯天御验证码的防护机制。

weixin_29009501的博客 1573

ICNN实现入侵检测的思路与源码(CIC-IDS-2017)

基于ICNN实现入侵检测,可用于现实网络

t1274171989的博客 8414

dll already loaded in another classloader

我在测试一个应用防火墙时,抛出了一exception: java.lang.UnsatisfiedLinkError: Native Library C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\fireWallValidator.dll already loaded in another classloader ...

不懂夜的黑 1033

想在瑞芯微RK3588上跑视频分类模型?避开3D卷积这个坑,试试这几种NPU友好的方案

本文探讨了在瑞芯微RK3588上部署视频分类模型时如何避开3D卷积的性能陷阱,提供了三种NPU友好的替代方案:MobileNetV2+GRU组合、Temporal Shift Module(TSM)和帧级池化。这些方案在保持较高准确率的同时,充分利用RKNPU的硬件加速能力,显著提升推理效率。文章还分享了从模型转换到部署优化的完整流程和实战经验。

weixin_28724319的博客 417

Flink Native Library xxx is being loaded in another classloader

将taos-jdbcdriver-2.0.38.jar及其依赖包,放入到/opt/java/jdk/jre/lib/ext文件夹下,java工程的pom文件中再把该依赖包的scope设置为provided。将tdengine客户端的jar包放到flink所在服务器的java环境的扩展依赖环境中,这样java应用的依赖就直接使用ext加载的类库,不再自己加载,就能保证不再重复加载。

xxhhbb1538的专栏 960

无人机频谱侦测与智能识别技术实战解析

本文深入解析无人机频谱侦测与智能识别技术实战应用,涵盖无线电侦测、信号处理和定位技术等核心内容。通过频谱分析、特征提取和机器学习算法优化,实现高精度无人机识别与定位,并分享复杂环境下的应对策略和系统集成经验。

weixin_28419039的博客 487

An AI compute of cities based on Distributed-Platform and Distributed-Databases(天池地铁流量预测)

摘要 在日益城市化的今天,城市居民出行问题逐渐成为衡量一个城市现代化能力的标准;城市出行方式多元化的同时,也对各交通系统的调度运营能力提出了更高的要求:如何提高运营效率,如何运用有限的安保力量进行有效的安检部署等问题一直在阻挠着城市交通的发展。 An AI compute of cities based on Distributed-Platform and Distributed-Databas...

Clearlove灬Star 5162

Native Library /usr/lib/libJMagick.so already loaded in another classloader

最近安装了ImageMagick的应用服务器报如下异常: java.lang.UnsatisfiedLinkError: Native Library /usr/lib/libJMagick.so already loaded in another classloader java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1772)

shixing_11的专栏 5684

保姆级教程:用Seurat 5.0.1搞定单细胞测序数据从质控到细胞注释的全流程

本文提供了一份详细的Seurat 5.0.1单细胞测序数据分析教程,涵盖从数据质控到细胞注释的全流程。通过R代码示例和可视化分析,帮助用户掌握单细胞RNA测序数据处理的核心技术,包括数据标准化、降维聚类和细胞类型注释,适用于生物信息学研究和临床数据分析。

weixin_29067143的博客 195

Native Library Jawin already loaded in another classloader解决办法[Weblogic10.3]

如果Weblogic上的两个web应用需要使用相同的JNI本地库(Jawin),当第二个web应用加载JNI(Jawin)本地库时,就会出现Native Library Jawin already loaded in another classloader错误    因此为了解决这个问题需要做如下配置 一.把jawin.jar 和 jawin.dll放到你在第一步配置的

mrliming的专栏 8830

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

TongWeb部署报错:java.lang.UnsatisfiedLinkError:Native Library XXX.so already loaded in another classload

TongWeb部署报错:java.lang.UnsatisfiedLinkError:Native Library XXX.so already loaded in another classloader

yeyuningzi的博客 1166

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Ubuntu 12.10 64位手动部署JBoss AS 7.1.1.Final全指南

Java EE应用服务器是企业级Java系统的核心运行时环境,其部署本质涉及JVM调优、Linux权限模型、模块化类加载与服务化进程管理等底层原理。掌握传统应用服务器如JBoss AS的裸机安装逻辑,有助于深入理解现代云原生中间件(如WildFly、Quarkus)的启动机制与依赖治理。本文聚焦Ubuntu 12.10 64位系统这一典型历史环境,详解手动部署JBoss AS 7.1.1.Final的关键路径——包括JDK兼容性验证、native库与glibc版本匹配、/tmp noexec策略规避、模块化

weixin_30824479的博客 426

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

记录一下解决 xxx.dll is already loaded in another classloader

加载dll的时候定义一个变量,在同一个jvm里,别的classloader使用system.load加载前,判断一下这个变量的值。第二次加载的时候,把加载的 dll 删除,然后再重新加载,就不会有重复加载的问题了。目前还有一个问题是获取到加载的该dll 的classloader,还没找到办法 T-T。

weixin_42180058的博客 1050

Native Library kjdbc_jni already loaded in another classloader解决办法

问题描述:一个web应用中,需要用jni的方式调用DLL文件,用system.loadLibrary("kjdbc_jni")加载dll文件,项目在tomcat上运行。当我在开发过程中修改保存代码后,tomcat自动重启时报错,这个dll已经被其他加载器加载过java.lang.UnsatisfiedLinkError: Native Library kjdbc_jni already loade...

Yaqing_568的博客 5138

【实战场景】“java.lang.UnsatisfiedLinkError: Native Library xxx.dll already loaded in another classloader“

如果你的应用程序中使用了自定义类加载器,并且这些自定义类加载器试图加载相同的DLL,那么考虑移除或重构这些自定义类加载器。确保只有一个类加载器负责加载包含JNI的类。如果你的应用程序中使用了多个类加载器,考虑创建一个自定义的类加载器来加载包含JNI调用的类。这个自定义类加载器应该尽可能与加载DLL的类加载器保持一致。确保自定义类加载器的父委托模型不会导致DLL被不同的类加载器重复加载。

杰叔叔不是个好叔叔的博客 2051

解决"java.lang.UnsatisfiedLinkError: Native Library xxx.dll already loaded in another classloader"问题

错误: 严重: Exception sending context initialized event to listener instance of class com.ldsoft.util.cache.InitCacheListener java.lang.UnsatisfiedLinkError: Native Library D:\Program Files\tomcat-6.0.3

ld422586546的专栏 1万+

dll already loaded in another classloader 错误解决

遇到此问题,从网上找了下答案,记录之   是由于web重启时再次加载dll导致, JVM只允许一个默认的ClassLoader来load native library,并不提供专门的API来unload一个loaded native library,因此无法在我们的重启Web应用的代码中来手工清除已经load的dll,也没有相应的unload native 方法.   解决办...

tomspiders的专栏 2653

java.lang.UnsatisfiedLinkError: Native Library * already loaded in another classloader

java.lang.UnsatisfiedLinkError: Native Library D:\opencv\build\java\x64\opencv_java249.dll already loaded in another classloader

SnailTyan 4072

tomcat启动时候no libtcnative-1异常错误解决

报错如下C:\Windows;C:\Windows;d:\Git\cmd;.)解决方案try {

u014200244的专栏 832
上一篇: Native Library xxx.so already loaded in another classloader 的解决方法
下一篇: 揭秘jbpm流程引擎内核设计思想及构架
JBossWeek
博客等级 码龄20年 41粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值