I have an old Java app which has been compiled for the 32bit platform. I've moved from Windows XP (32bit) to OS X Snow Leopard (64bit) and I'd like to continue using this app, however I'm getting an exception along the lines of:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib:  no suitable image found.
Did find:
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib: mach-o, but wrong 
architecture

I've tried using the -d32 switch when running the app from the command line but with no luck.

Is it at all possible to run this 32bit app on a 64bit platform without having to recompile or use a VM?

Edit:

I don't have the original source for this application and I'm not overly familiar with developing in Java. If there is a tool I can use to "up-compile"(?) to 64bit that would be useful!

link|improve this question

44% accept rate
1  
You might want to install the 32-bit platform as well (I believe you can install both side-by-side, or it might also include the 32 bit JVM). – Breakthrough Jan 16 at 12:02
if the reason you say you don't wan to recompile it is because you don't have the code, you might be able to decompile it then recompile it. – barlop Jan 16 at 14:56
@Breakthrough: I believe Snow Leopard has both 32 and 64 builds on it. My Java Preferences dialog shows this anyway, and java -version returns "Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)" – Phillip Oldham Jan 16 at 15:29
Looks like the original program was compiled with some JNI library usage (Wikipedia JNI). With pure java you should have no problems. – Manwe Jan 20 at 16:47
feedback

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
or
required, but never shown

Browse other questions tagged or ask your own question.