Tomcat调用项目nativeLibrary遇到java.library.path问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat调用项目nativeLibrary遇到java.library.path问题相关的知识,希望对你有一定的参考价值。

大家好,我有一个tomcat上的web项目,系统是ubantu,需要用到native library,在普通java项目里我可以调用这个library,代码贴出:

System.loadLibrary( "poker-eval" );
System.loadLibrary( "pokerjni" );

但是当我尝试调用这个library在webproject的时候,就一直报错java.lang.UnsatisfiedLinkError: no poker-eval in java.library.path
我已经把poker-eval.so,pokerjni.so放到webProject的/shared/lib目录,也设置了catalina文件里shared.loader=$catalina.home/shared/lib,(这里我是参照一篇文章弄的 http://wiki.apache.org/tomcat/HowTo#I.27m_encountering_classloader_problems_when_using_JNI_under_Tomcat 在I'm encountering classloader problems when using JNI under Tomcat问题里可以找到)。
有谁知道解决方法吗 万分感激!!!

问题比较明显。动态库路径不正确。
一、把动态库放到jdk\bin目录下,
直接
System.loadLibrary( "poker-eval" );
System.loadLibrary( "pokerjni" );
二、把动态库放到同classes文件夹同目录下,WEB-INF/
也可以直接调用
参考技术A 关注

以上是关于Tomcat调用项目nativeLibrary遇到java.library.path问题的主要内容,如果未能解决你的问题,请参考以下文章

macaca android遇到的坑

杂谈迁移tomcat项目到docker,以及遇到的问题

tomcat下部署项目的流程和遇到的问题笔记

ansible 启动tomcat遇到的问题

ansible 启动tomcat遇到的问题

Java Unable to load library ‘gsdll64‘: 报错,解决方案