gpt4 book ai didi

java - 从java库路径加载库

转载 作者:行者123 更新时间:2023-12-02 11:27:20 25 4
gpt4 key购买 nike

我依赖于一个库src/main/resources/libs64/thelib.dll,我需要在运行时加载

System.setProperty("java.library.path", 
Paths.get(System.getProperty("user.dir"),
"src", "main", "resources", "libs64").toAbsolutePath().toString())

当我运行 Spring Boot 应用程序时

mvn package
java -jar springapp.jar

我告诉我

java.lang.UnsatisfiedLinkError: no src/main/resources/libs64/thelib in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) ~[na:1.8.0_92]
at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[na:1.8.0_92]
at java.lang.System.loadLibrary(System.java:1122) ~[na:1.8.0_92]

当我在 Eclipse 中设置库路径 src/main/resources/libs64 时,它可以工作,并且 java.library.path 打印出与

Paths.get(System.getProperty("user.dir"),
"src", "main", "resources", "libs64").toAbsolutePath().toString())

感谢您的帮助

最佳答案

src/main/resources/libs64 是 Eclipse 项目中库的路径。在没有 Eclipse 工作区的系统上,这将永远无法工作。

当您将应用程序打包到 Jar 中时,库(作为资源)将被复制到该 jar 中,位于路径 libs64 下方的某个位置。

据我所知,Java 无法加载 zip/jar 文件中的库。因此你必须提取到例如到临时目录,然后从那里加载它。或者,您不将库打包到 Jar 文件中,而只是将其部署到 JAR 文件旁边。然后您可以直接从 JAR 文件的安装位置加载它。

关于java - 从java库路径加载库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49519044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com