在Tomcat中找不到本机库

时间:2011-05-27 09:39:38

标签: gwt tomcat java-native-interface

我开发了一个GWT应用程序,其中包含一些带有JNI的本机库。当我从eclipse测试它时一切正常,但是当我尝试在我的Eclipse服务器上部署它时,它找不到本机库。

我关注this tutorial for JNI and Tomcat

但我注意到它仍然找不到它们。当我从我的服务器应用程序中读取java.library.path时,它与我启动Tomcat时显示的不同(用set path显示路径变量)。

我缺少什么想法?

2 个答案:

答案 0 :(得分:3)

最简单的答案可能是编辑Tomcat安装的bin/startup脚本,将java.library.path更改为将本机库复制到的位置。像

这样的东西
java -Djava.library.path=/path/to/my/libs existing args

如果您正在使用共享托管服务提供商,则需要咨询所有者以确定他们是否允许将本机库加载到容器中,以及是否存在库应该是的特定位置复制。

除此之外,您的开发环境的元问题与您的部署环境不同。理想情况下,您将拥有本地开发计算机上运行的部署配置的精确副本(或尽可能接近)。

答案 1 :(得分:3)

我也一直在努力。最终对我有用的是将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"