我开发了一个GWT应用程序,其中包含一些带有JNI的本机库。当我从eclipse测试它时,一切正常,但是当我尝试将它部署在Eclipse服务器上时,它找不到本地库。在Tomcat中找不到本地库
我跟着this tutorial for JNI and Tomcat
,但它仍然无法找到他们,我注意到了。当我从我的服务器端应用程序中读取java.library.path
时,它与我启动Tomcat时显示的不同(显示的路径变量为set path
)。
任何想法我失踪?
我开发了一个GWT应用程序,其中包含一些带有JNI的本机库。当我从eclipse测试它时,一切正常,但是当我尝试将它部署在Eclipse服务器上时,它找不到本地库。在Tomcat中找不到本地库
我跟着this tutorial for JNI and Tomcat
,但它仍然无法找到他们,我注意到了。当我从我的服务器端应用程序中读取java.library.path
时,它与我启动Tomcat时显示的不同(显示的路径变量为set path
)。
任何想法我失踪?
最简单的答案可能是编辑您的Tomcat安装的bin/startup
脚本,将java.library.path
更改为将本机库复制到的任何位置。像
java -Djava.library.path=/path/to/my/libs existing args
的东西,如果你使用一个共享的托管服务提供商,你需要与业主协商,以确定它们是否会允许本地库被加载到容器中,如果有一个特定的位置图书馆应该复制到哪里。
除此之外,您的开发环境的元问题不同于您的部署环境。理想情况下,您将拥有在本地开发机器上运行的部署配置的精确副本(或尽可能接近)。
我也一直在努力。最终对我的工作是将JNI库放在tomcat/shared/lib
目录中,并将LD_LIBRARY_PATH
环境变量设置为JNI库的路径。我还设置了JAVA_OPTS
环境变量以包含-Djava.library.path
选项。
Tomcat 7顺便说一句。
如果目录不存在,您将需要创建shared/lib
目录。
在我的Linux服务器,这是它是如何设置:
LD_LIBRARY_PATH=/usr/tomcat/shared/lib:$LD_LIBRARY_PATH
JAVA_OPTS="-Djava.library.path=/usr/tomcat/shared/lib"
的可能的复制[如何添加到Tomcat本机库?](http://stackoverflow.com/questions/14018817/how-以加-A-本机库在-tomcat的) – 2017-03-10 19:56:55