关于weblogic报UnsatisfiedLinkError Native Library xxx.so already loaded

一、场景

最近写的一个系统,在Tomcat测试完后说要改使用weblogic,于是在服务器上安装了weblogic,捣鼓了半天,一个个问题冒了出来,其中就有个比较麻烦的报错:UnsatisfiedLinkError Native Library xxx.so already loaded。

造成这个报错的原因,主要是因为有个类使用jni技术,调用了本地的库:

static {
        System.loadLibrary("xxx");
    }

由于一个jvm中不允许加载两次本地动态库,所以在加载第二次的时候,就会抛出这个错误,这个其他博客都说得很详细了。但是很多人的解决方法并不起作用。

 

二、解决

上网找了一轮,最后是在国外一个问答网站找到了答案,解决方法很简单:

把加载使用jni加载本地动态库的类,导出为jar包,然后把这个jar包放在服务器上,并把这个jar包加入classpath。

 

三、参考

1. https://www.experts-exchange.com/questions/21877766/I-am-getting-the-java-lang-UnsatisfiedLinkError-Native-Library-C-Lotus-Notes-nlsxbe-dll-already-loaded-in-another-class-exception-when-i-am-redeploying-my-ear-file-without-restarting-the-webserver.html

(完)

posted @ 2019-04-19 09:44  大师兄啊哈  阅读(882)  评论(0编辑  收藏  举报