2017-09-27 126 views
0

我有一些本地庫的web項目。他們大多數都是由JNA圖書館加載的。Tomcat web項目中的Java本機庫路徑

我把它們放在這個文件夾

WEB-INF\classes\*.dll 
根套餐的

英寸

應用程序啓動時,他們是通過在Tomcat

${catalina.home}\webapps\ROOT\WEB-INF\classes\mylibrary.dll 

所有庫由JNA和工作成立加載,但是有一個由第三方(斑馬多​​重平臺SDK)管理的只是一個圖書館,我可以不加載從該文件夾。也許是因爲它不適用於JNA,而是JNI。 如果我動議庫

${catalina.home}\bin 

即通過的java.library.path PARAM在啓動tomcat它的工作原理命令定義的文件夾!

我可以在ROOT.war包中分發庫並設置tomcat以查看我的所有應用程序以查找本機庫嗎?

+0

你可以像在https://stackoverflow.com/a/15984514/1398418或https://stackoverflow.com/a/6909689/1398418 – Oleg

回答

0

那麼,你可以修改java.library.path並讓它指向分解的webapp目錄(你的${catalina.home}\webapps\ROOT\WEB-INF\classes\,但你自己先解決${catalina.home})。

+0

中所述那樣做,好吧,但這隻適用於主應用程序(ROOT )我正在尋找讓它適用於所有查看其主要類文件夾(如JNA)的應用程序。 – Tobia

+0

這適用於您正在運行的任何應用程序。 Tomcat解包所有應用程序,除非您將其配置爲不解壓縮。因此,您可以將java.library.path更改爲爆炸的WAR目錄以及一些額外的路徑,如''{catalina.home} \ webapps \ yourapp \ WEB-INF \ classes'''。我個人更喜歡使用不同的目錄,如WEB-INF/lib,但這是一個有趣的問題。 –