MsmqJava.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

Jul 13, 2010 at 11:23 AM


Hi Chesso

I am using the MsmqJava.dll native library to send the message from Java to MSMQ queue.

I am getting this error.

java.lang.UnsatisfiedLinkError: C:\GWServers\TomcatCC\apachetomcat6018\bin\MsmqJava.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
 at java.lang.ClassLoader$NativeLibrary.load(Native Method)
 at java.lang.ClassLoader.loadLibrary0(
 at java.lang.ClassLoader.loadLibrary(
 at java.lang.Runtime.load0(

Could you please send me the 64bit dll.

Please close the ticket raised in dotnetzip section.


Jul 13, 2010 at 12:32 PM

Hi Chesso,

I got this article from sun site

How is native code affected?

There are no changes to public native interfaces (JNI, the AWT Native Interface, JPDA) for 64-bit development. 64-bit versions of all public native libraries are provided, with the 'sparc' component of the pathnames replaced by 'sparcv9'. Any 64-bit native code that links against a native library must use the 64-bit version of that library, using the LD_LIBRARY_PATH[_64] environment variables or some other mechanism.

When porting 32-bit native code to 64-bit Java platforms, you will need to modify you code to be 64-bit clean.  This involves examining your C/C+ + code and looking for code that assumes the size of a pointer to be 4 bytes or that a pointer can be cast and stored in an integer.   Long data types are also troublesome when porting 32-bit code.  You should avoid the use of  longs if at all possible since longs have different sizes on different operating systems even in 64-bit.  Windows 64-bit platforms define longs to be 4 bytes but most Unix operating systems specify that longs are 8 bytes in size.  For more details, refer to the links below under learning more about 64-bit programming.

Is it possible for you to provide the library in 64 bit version? Could you please reply soon.