我正在尝试将第三方dll用于我在java中编写的程序。不幸的是,它只有32位支持。当我尝试在64位VM中加载dll时,出现以下错误:
Can't load IA 32-bit .dll on a AMD 64-bit platform
我尝试在32位虚拟机中运行,这可以在eclipse中运行,但是当我导出项目时,我得到了同样的错误。请帮忙!
此致,Ben
答案 0 :(得分:9)
您不能在64位Hotspot JVM中使用32位DLL。它不会起作用。我不知道任何其他支持32位DLL的64位JVM。
您的选择是:
我尝试在32位虚拟机中运行,它可以在eclipse中运行,但是当我导出项目时,我也会遇到同样的错误。
这只能意味着您运行的是32位JVM来运行Eclipse,而64位JVM则运行Eclipse以外的应用程序。 (问题是如何运行应用程序,而不是如何导出它...)
答案 1 :(得分:2)
使用64位JVM的32位共享库的唯一方法是运行另外的32位JVM并通过RMI,JMS或某种形式的消息传递来访问它。
它是64位程序(不仅仅是Java)的内在限制,它无法与32位库交换指针。