用java在64位机器上运行32位dll
我正试图为我用java编写的程序使用第三方dll。不幸的是,它只有32位支持。尝试在64位VM中加载dll时,出现以下错误:
Can't load IA 32-bit .dll on a AMD 64-bit platform
我曾尝试在32位虚拟机中运行,该虚拟机在eclipse中工作,但当我导出项目时,我得到了相同的错误。请帮忙
真的,本
你可以在下面搜索框中键入要查询的问题!
我正试图为我用java编写的程序使用第三方dll。不幸的是,它只有32位支持。尝试在64位VM中加载dll时,出现以下错误:
Can't load IA 32-bit .dll on a AMD 64-bit platform
我曾尝试在32位虚拟机中运行,该虚拟机在eclipse中工作,但当我导出项目时,我得到了相同的错误。请帮忙
真的,本
# 1 楼答案
不能在64位热点JVM中使用32位DLL。这行不通。我不知道还有其他64位JVM支持32位DLL
事实上,正如Peter Lawrey指出的,这不仅仅是JVM的限制。主流操作系统不允许以64位模式运行的应用程序加载和使用32位库
你的选择是:
这只能意味着您正在运行一个32位JVM来在Eclipse中运行应用程序,而在Eclipse之外运行应用程序的是一个64位JVM。(问题是如何运行应用程序,而不是如何导出它…)
# 2 楼答案
从64位JVM使用32位共享库的唯一方法是运行额外的32位JVM,并通过RMI、JMS或某种形式的消息传递来访问它
64位程序(不仅仅是Java)的一个固有限制是它不能与32位库交换指针