java - Spring boot jar打包和com4j

标签 java spring spring-boot native

拥有一个包含 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/

相关文章:

java - 不允许 SSN 和电话号码出现在字符串正则表达式中

java - Spring REST 获取带有日期字段的对象

java - Spring Autowiring map 行为

java - 具有 Spring 支持的 Apache Nifi 自定义处理器

java - 在 Spring 中实现 thymeleaf 时无法访问对象的属性

java - 考虑定义一个类型为 'org.flywaydb.core.Flyway' 的 bean

Java,在哪里放置公共(public)枚举

java - Java 测验程序中正确答案识别错误

java - 如何在模型 View 呈现器模式中使用存储库模式和交互器模式?

java - 对象生命周期记录