Apache Tomcat找不到Native库

时间:2013-05-04 17:27:49

标签: tomcat native apr

我维护了无数的tomcat实例,但现在我遇到了一个我从未遇到过的问题。

我得到了众所周知的日志消息,其中tomcat抱怨它无法在D:\ Program \ Apache Software Foundation \ Tomcat 7.0 \ bin找到本机库:

  

“基于APR的Apache Tomcat Native库,它允许最佳   在生产环境中没有找到性能   java.library.path:D:\ Program \ Apache Software Foundation \ Tomcat   7.0 \ BIN; [...]“

像往常一样,我将本机库“tcnative-1.dll”放入Tomcat的bin文件夹中(是的,它位于驱动器D:!!),但是tomcat还抱怨缺少本机库。

我还尝试在启动时指定 - Djava.library.path,但没有成功。日志中没有其他消息可能表示启动时存在其他问题。

为什么tomcat没有找到原生的lib?

网络上充满了愚蠢的试错法,tomcat文档没有明确描述在哪种情况下它不会在bin文件夹中使用本机库。

其他信息:

  

Apache Tomcat 7.0.8

     

JVM 1.6.0_29-b11

3 个答案:

答案 0 :(得分:0)

检查DLL bitsize是否与您的JDK bitsize(不是OS bitsize)匹配:例如。如果你运行Win64,但是32位Java,请确保拥有32位DLL。

答案 1 :(得分:0)

将setenv.bat创建到D:\ Program \ Apache Software Foundation \ Tomcat 7.0 \ bin中,并在其中添加以下行。

set JAVA_OPTS=-Djava.library.path="D:\Programme\Apache Software Foundation\Tomcat 7.0\bin"

这适合你吗?

答案 2 :(得分:0)

这是一个老帖子,但我在同样的问题上失去了很多时间。所以我想发布关于这个问题的解决方案。

第1步:将您的dll粘贴到java.path中,例如在windows C:\Windows\System32

第二步:设置VM选项:-Djava.library.path="C:\Windows\System32"

在netebeans rightClick on project --> properties --> run -->fill textfield in vmOption.