I am attempting to use a 3rd-party dll for a program I am writing in java. Unfortunately, it only has 32-bit support. When I attempt to load the dll in a 64-bit VM, I get the following error:
Can't load IA 32-bit .dll on a AMD 64-bit platform
I have tried running in a 32-bit VM, which works in eclipse, but when I export the project, I get the same error. Please help!
Sincerely, Ben
解决方案
You cannot use a 32-bit DLL in a 64-bit Hotspot JVM. It won't work. And I don't know of any other 64-bit JVM that supports 32-bit DLLs.
Your choices are:
Switch to a 32-bit JVM. (You can run a 32bit JVM on a 64-bit OS ...)
Port the DLL to 64-bit.
Switch to an alternative library that is pure Java, or has a 64-bit DLL.
I have tried running in a 32-bit VM, which works in eclipse, but when I export the project, I get the same error.
That can only mean that you are running a 32-bit JVM to run Eclipse, and a 64-bit JVM to run the application outside of Eclipse. (The issue is how you run the application, not how you export it ...)