我開發了一個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