2017-09-27 37 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,但这是一个有趣的问题。 –