我正在尝试使用 JNA 从我的 Java 应用程序调用 .dll 文件。我收到以下异常:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'C:\Windows\System32\foo.dll': The specified module could not be found.
虽然我在 64 位 Windows 7 PC 上运行它,但 .dll 和我的 jdk 都是 32 位的 (OS_ARCH="i586")。
.dll 位于 System32 文件夹中。
我正在使用 Eclipse 并将 System32 文件夹添加到 Java 构建路径属性中库选项卡下 JRE 系统库中的 native 库位置(尽管我认为这不是必需的)。
如有任何帮助或建议,我将不胜感激。
谢谢,
-蒙克。
最佳答案
这取决于 file system redirector .您正在 WOW64 模拟器下执行,该模拟器在 64 位系统上模拟 32 位 Windows。在 WOW64 下,system32
被重定向到 SysWOW64
。您需要将 DLL 放在那里。
话虽如此,系统目录归系统所有,并且是系统私有(private)的。您不应将 DLL 放入系统目录。您应该找到一种方法将您的 DLL 放在其他位置。
关于java - 为什么我得到 java.lang.UnsatisfiedLinkError : Unable to load library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698561/