gpt4 book ai didi

java - Win64-JNI : UnsatisfiedLinkError: Can't find dependent libraries

转载 作者:行者123 更新时间:2023-11-30 03:23:12 26 4
gpt4 key购买 nike

我有一个自己的 JNI dll,它依赖于其他一些 dll(准确地说是零 MQ)。我已经通过 Visual Studio 在 Windows 7(64 位)上编译了这些依赖项。我定义我得到 64 位 dll。

在开发者机器上它运行得很好。但是,如果我将这些 dll 移动到另一台计算机(也是 Windows 7 64 位),我会收到标题中提到的错误。

我还将我的 minigw-64 安装移动到这台机器上,以便在那里编译我的 dll。为此,当然,我还需要所有其他 dll,并且我可以成功编译它。但是如果我启动 jar 文件(我的 jni-lib 将在其中加载),我会收到此 UnsatisfiedLinkError。

我在两台电脑上做了完全相同的事情。两者的 Path 或 java.library.path 相同。

我的启动脚本如下所示:

set PATH=C:\Path\To\my\dependencies;.;%PATH%
java -jar myjar.jar
pause

知道问题可能是什么吗?

最佳答案

检查以下内容。

1) 确保库名称没有拼写错误。

如果是 Linux,应该是这样的

System.load.library("mylib");

那么库名称应该类似于 libmylib.so。

2)您需要添加java库路径的位置,例如

-Djava.library.path="您的 dll 位置的路径"。

3) 确保您已在您使用的 Jre 版本中编译了库,即(如果您使用 64 位 Jre,则需要以 64 位编译 dll)。或者,您可以使用 -d32 或 -d64 标志(如果您的 jre 中可用)。

4) 确保 dll 不处于 Debug模式,因为如果是这样,它将需要计算机中的 microsoft 调试运行时库(我已经这样做过好几次了)。如果依赖项路径步行器存在任何问题,应该可以帮助您识别依赖项问题。

关于java - Win64-JNI : UnsatisfiedLinkError: Can't find dependent libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30838651/

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