简体   繁体   English

Tomcat Web项目中的Java本机库路径

[英]Java native library path in Tomcat web project

I have a web project with some native libraries. 我有一个带有一些本机库的Web项目。 Most of them are loaded by JNA library. 它们中的大多数由JNA库加载。

I put them in this folder 我把它们放在这个文件夹里

WEB-INF\classes\*.dll

of a ROOT package. 根包。

When the application starts they are loaded by Tomcat in 当应用程序启动时,它们由Tomcat加载

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

All libraries are founded by JNA and work, however there is just one library managed by third parties (Zebra Multilink platform SDK) that I cannot load from that folder. 所有库均由JNA创建并工作,但是只有一个第三方管理的库(Zebra Multilink平台SDK)无法从该文件夹加载。 Maybe because it doesn't work with JNA but with JNI. 也许是因为它不适用于JNA,但不适用于JNI。 If I move that libraries to 如果我将库移到

 ${catalina.home}\bin

that is the folder defined by java.library.path param in tomcat start command it works! 那是在tomcat start命令中由java.library.path param定义的文件夹,它起作用了!

Can I distribute libraries in ROOT.war package and set tomcat to look into all my applications to find native libraries? 我可以在ROOT.war包中分发库并设置tomcat来调查我的所有应用程序以查找本机库吗?

好了,您可以修改java.library.path并使其指向展开的webapp目录(您的${catalina.home}\\webapps\\ROOT\\WEB-INF\\classes\\ ,但需要自己先解析${catalina.home} ) 。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM