Sunday, March 18, 2012

Planet M.U.L.E. Error MuleException liblwjgl.so wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)


Have you ever gotten an error like this?

Planet M.U.L.E. Error
MuleException
/home/geek/mule/data/lib/liblwjgl.so: 
wrong ELF class: ELFCLASS32 (Possible cause: 
architecture word width mismatch)
Please run mule.sh to start the game.

Well, do not worry, here is the solution.  The reason you are getting this error is that mule.sh is trying to use a 32 bit library instead of a 64 bit library like your machine probably requires.  I got this error when launching the game M.U.L.E. for the first time on a 64 bit linux box. The only thing you need to do to fix this error is change the LD_LIBRAY_PATH in your mule.sh file as follows.

The old line looked like this:
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

so change it to:
export LD_LIBRARY_PATH=.:/usr/lib/jvm/java-7-openjdk/jre/lib/amd64

Your library path may be different. In order to find what LD_LIBRARY_PATH to change to, I ran the following command:
 $ locate jre/lib | grep 64

This assumes that you have recently run the updatedb command, and have the openjdk installed, but it shows all of the files in the java runtime library that mule needs.  Your java runtime library may be on a different path.

Hope that helps.


1 comment:

Tristan Miller said...

Thanks for the post. I've got a similar problem -- I just upgraded from Planet M.U.L.E. 1.3.4 to 1.3.6. When running the new version's mule.sh I get the same error message. However, manually adding the JRE library path to LD_LIBRARY_PATH doesn't solve the problem. Any other ideas?