[英]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.