为什么我得到java.lang.UnsatisfiedLinkError:无法加载库?

我正尝试使用JNA从我的Java应用程序中调用.dll文件。 我收到以下exception:

线程“main”中的exceptionjava.lang.UnsatisfiedLinkError:无法加载库“C:\ Windows \ System32 \ foo.dll”:无法find指定的模块。

.dll和我的JDK都是32位(OS_ARCH =“i586”),虽然我在64位Windows 7 PC上运行它。
.dll位于System32文件夹中。

我正在使用Eclipse,并将System32文件夹添加到Java Build Path Properties中的Libraries选项卡下的JRE System库中的Native库位置(尽pipe我不认为这是必须的)。

我将不胜感激任何帮助或build议。
谢谢,
-Munk。

Solutions Collecting From Web of "为什么我得到java.lang.UnsatisfiedLinkError:无法加载库?"

这归结于文件系统重定向器 。 您正在WOW64仿真器下执行模拟64位系统上的32位Windows。 在WOW64下, system32被重定向到SysWOW64 。 你需要把你的DLL放在那里。

这就是说,系统目录由系统拥有,而且是私有的。 您不希望将DLL放入系统目录。 您应该找到一种方法将您的DLL放在其他位置。

错误的另一个原因是该DLL只支持32位版本不支持64位操作系统。 你必须确认的DLL供应商。

我的操作系统是windows-x64,我的jdk是x64。所以问题和你一样。 我的解决方案是你必须安装jdk-x86,并把你的dll到jdk-x86 / bin目录中。