JNA在Win7 64位机器上使用32位dll

5

我已经在Java领域工作了8个月。目前,我正在使用JNA加载第三方DLL,在32位WinXP和32位Win7机器上运行良好。

在64位Win7机器上,这个第三方dll存在于C:\Program Files(x86)下,我认为这意味着它是一个32位的DLL。因此,我迄今为止使用的配置如下:

Win7机器 - 64位, 第三方dll - 32位(根据上述假设), JRE - 尝试过32位和64位

但是我收到以下错误消息 - "error: java.lang.UnsatisfiedLinkError: Unable to load library 'Wrapper': The specified module could not be found."

请告诉我JNA是否支持在64位机器上使用32位JRE加载32位DLL。另外,如果这个32位DLL依赖于其他32位和64位的DLL,JNA仍然支持吗?

我将使用procexp查找是否缺少任何依赖项。我会相应地更新这篇文章。

请提供您的专业建议。先感谢您!

1个回答

7
JNA支持在64位机器上加载32位DLL。但我们需要一个32位的JVM来做到这一点。 我曾经使用Platform.is64Bit()方法来确定DLL的路径。我了解到这个方法返回的是JVM的配置而不是操作系统的配置。 因此,在我的情况下,当我在64位机器上使用32位虚拟机时,DLL的路径是错误的。

能否在64位JRE上加载32位DLL? - Tobia
在一台机器上安装32位和64位JRE是否可行?主要是在Linux系统上。 - Guerino Rodella
是的,您可以在同一台计算机上同时安装32位和64位JRE。我已经在Linux、Windows和Solaris上这样做了。 - Brian Knoblauch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接