拥有一个包含 com4j 依赖项(内部有 dll)的 Spring Boot 应用程序
如果我将应用程序打包为 WAR,一切都会按预期运行。如果我将其打包为 jar,则无法加载 dll:
java.io.FileNotFoundException: C:\<…>\interfaces.jar!\BOOT-INF\lib\com4j-x86.dll (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at com4j.COM4J.loadNativeLibrary(COM4J.java:578)
at com4j.COM4J.<clinit>(COM4J.java:531)
Spring Boot加载库有什么特殊要求吗?
最佳答案
确实,我在 tomcat 上将其作为部署的 war 文件进行了测试,一切都按预期工作。
同时,我知道解压 native 库并将它们放入启动 jar 文件的同一目录中的解决方法。我想问题出在 spring boot 中,它无法从 jar 内的 jar 中加载 native 库(希望您理解这一点)
@eis:我通过 javaw -jar interface.jar 启动我的 jar 文件
关于java - Spring boot jar打包和com4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494154/