Sheepish Frog

I have a problem that I would have hoped not to make public, but a lesson in humility is always a good thing, so here goes:

I'm getting the following error in linux when I try to run anything in jME:

java.lang.UnsatisfiedLinkError: /programming/workspace/jme/lib/ /programming/workspace/jme/lib/ cannot open shared object file: No such file or directory
   at java.lang.ClassLoader$NativeLibrary.load(Native Method)
   at java.lang.ClassLoader.loadLibrary0(
   at java.lang.ClassLoader.loadLibrary(
   at java.lang.Runtime.loadLibrary0(
   at java.lang.System.loadLibrary(
   at org.lwjgl.Sys$
   at Method)
   at org.lwjgl.Sys.<clinit>(
   at org.lwjgl.opengl.Display.<clinit>(
   at com.jme.system.lwjgl.LWJGLPropertiesDialog.<init>(
   at jmetest.base.TestSimpleGame.main(

I can't figure out why this is happening as I've properly defined the java.library.path to point to /programming/workspace/jme/lib and it's obviously finding the file, and it is there, but this error is being thrown anyway.  Can anyone set me straight?



you have a /programming/workspace/jme/lib/ on your box?? Try removing the leading / or adding a .

Yes, the location of the library is /programming/workspace/jme/lib/ and I specified:


As my VM arguments.  I've tried setting the permissions on the files and even the folder to be 777 and it's still not going.


Okay, I think it might have to do with the fact that I'm mounting a FAT32 partition and it's having issues dealing with that.  I'm still looking into it, but I'm feeling less like a Sheep all the time. :-p


I should have explained that I'm trying to release Roll-A-Rama…that's why everything is breaking. :-p

Okay, I went ahead and built everything and dropped on my production server and now I'm getting this friendly error message:

SEVERE: Native code library failed to load: java.lang.UnsatisfiedLinkError: /home/mhicks/rr/lib/ cannot open shared object file: No such file or directory
Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: get_PARENTSPACEID_ZERO
        at org.odejava.ode.OdeJNI.get_PARENTSPACEID_ZERO(Native Method)
        at org.odejava.ode.Ode.getPARENTSPACEID_ZERO(Unknown Source)
        at org.odejava.Space.<clinit>(Unknown Source)
        at com.jmex.physics.PhysicsWorld.<init>(Unknown Source)
        at com.jmex.physics.PhysicsWorld.create(Unknown Source)
        at com.captiveimagination.jme.GameManager.initGame(        at

Any insights would be much appreciated.


Isn't one of those standard libraries that differs with the version of GCC you use? Maybe it's too new for a typical server oriented linuc distro (and by that I mean Debian). Either that or it's in the wrong path…

Me, I gave up on this path buisness and just put whatever dll/so/jnilib it asks for in the same directory that I launch the jar from (might solve the problem on your local machine).

Hi darkfrog, I think some security restirictions strike you.

From the man page of mount:

              noexec Do not allow direct execution  of  any  binaries  on  the
                     mounted  file system.  (Until recently it was possible to
                     run binaries anyway  using  a  command  like  /lib/ld*.so
                     /mnt/binary.  This  trick  fails  since  Linux  2.4.25  /

This option is default for vfat, nfs and some others.

You can find out which shared libraries a binary or a shared library needs with something like:

> ldd
ldd: warning: you do not have execution permission for `./' =>  (0xffffe000) => /usr/lib/ (0x4002a000) => /lib/tls/ (0x400e8000) => /lib/ (0x4010e000) => /lib/tls/ (0x40119000)
        /lib/ (0x80000000)

If you're missing most propably it shows unresolved with the command above and you have to find it in some package (I think there are some compatibility packages out there if you have a different version).

Thanks guys, that was the boost I needed to figure it out.  In the end I had to simply execute (on Fedora Core 4 that is):

yum install compat-libstdc++-3

That installed what I needed.  Apparently by default FC4 comes with and you have to install the compatability package to get 5.

Hope someone else finds this useful.


On a related note, my server is now runnable.  This evening I will get Roll-A-Rama client deployed out for people to try…I just pray it will work. :-p


I've got my server running great, but on my machine when I try to execute the application I'm still getting, "cannot open shared object file" and when I execute:


I get:
 =>  (0xffffe000) => /lib/ (0xf7f82000) => /usr/X11R6/lib/ (0xf7eae000) => /usr/X11R6/lib/ (0xf7e9f000) => /lib/ (0xf7e8d000) => not found => /lib/ (0xf7d63000)
        /lib/ (0x56555000) => /lib/ (0xf7d5f000)

It would seem that is missing?  I can't seem to find that anywhere...


It's included in jre, for me this is


and it should be somewhere where java can find it.

You can try to add the directory where this shared library is to /etc/ and execute ldconfig, but this is something the install program or a script to start the java vm should do. Find the library with:

find /usr -name

if java is installed somewhere in /usr.

If ldd doesn't find it, it's probably considered to be a private library by the installer, so it's not registered with anything.

Or better put: what Galun said :slight_smile:

I'm not so sure how jre finds this library, but I have the following variables in my environment:






My guess is, java takes the JRE_HOME and appends a /lib.