【問題現象】:
啟動Tomcat時報如下類似錯誤信息:
An incompatible version 1.1.12 of the APR based Apache Tomcat Native library is installed, while Tomcat requires version 1.1.30
【原因分析】:
這是由於Apache Tomcat Native library 就是APR(Apache Portable Runtime),這里的意思是建議使用apache的apr,同時要保證APR版本一致。由提示可以看出當前版本是1.1.30,但是本機是1.1.12,所以需要下載對應的版本。
【解決方法】:
下載對應的APR文件放到Windows\System32下,或者Tomcat的bin目錄下邊或者是JDK的bin目錄下邊,其實這里邊放到哪里都可以,前提是這個目錄在系統的環境變量里面。而APR下載地址是:
地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/
舉例:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.17/binaries/win32/目錄下的 tcnative-1.dll 文件,將其放到環境變量中即可。
【注意事項】:
有的時候你下載完成,也放到相應目錄,但是還是依然報錯,那么有幾點可能:
1.放置的目錄沒有在環境變量里面。這個就要確認你放置的目錄確實是在環境變量中,否則不會生效。
2.有舊的版本沒有清除。windows 喜歡在 system32 下某個隱藏的目錄下復制一份 dll 的副本(具體哪個 dll 會復制到這里我也不確定,你得手工檢查一次,Windows\System32 下搜索一次,把所有同名的刪除掉),隱藏的哦,需要在文件夾選項中把它顯示出來,把那些緩存的版本也刪除干凈。
把下面這段文字保存成一個 search.bat:
1
|
@
echo
File %1 is found at %~dp$PATH:1
|
然后輸入命令:
1
2
|
C:\>search jscript.dll
File jscript.dll is found at C:\WINDOWS\system32\
|
我們能用它找出來你的 dll 到底是從哪個目錄下找到的,每次你刪除一個 dll 后再運行一次這個命令檢查還有哪個目錄下有它。確保在 tomcat\bin 目錄之外再也沒有了,以后就把你最新的版本放在 tomcat\bin 下就可以了