2023-01-20 291
我正在开发通过JNI使用本机代码的Web服务.
我可以将这些DLL打包到我的战争中吗?
我很累独立管理它们…
ps我正在使用maven.
pps我正在使用tomcat 7.x
全部来自src/main/webapp的全部都在root中挤满了战争,全部来自src/main/resources> src/main/resources.您可以打包想要的东西
是的,但是您将遇到很多问题.
dll是从文件系统加载的,而不是classpath
这不是一个严重的问题:只需将DLL存储在战争中作为资源,然后将其复制到文件系统上的位置.属性java.io.tmpdir应该指向您的可写目录,或者您可以使用File.createTempFile()(只需在该文件上调用deleteOnExit())即可.然后您致电System.load(),不是 System.loadLibary().
您必须管理不同体系结构的DLL的不同副本
如果您对部署有完全控制,并且知道您只会部署到一台计算机,那么这不是问题.否则,您需要编写代码才能确定要加载哪个库.
您只能在
这是会伤害您的事情:当您加载共享库时,它将链接到JVM的可执行代码中.您无法重新加载同一库,这意味着您不能重新部署.
当我上次不得不加载共享库来支持Web应用程序时,我最终将其放入了应用程序共享目录中.这样就容易得多.
DLL文件未通过类路径加载. ClassPath机制仅用于加载类文件和其他属性文件之类的Java资源.
一种方法是指定DLL的完整路径或使用java.library.path系统变量指定它.请检查此链接有关更多详细信息.
以上所述是小编给大家介绍的我可以将本机DLL打包到WAR中吗?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25988.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态