Physics applet -native library problem

Hello!

I have had som problems with applets and jME. I followed this thread: http://www.jmonkeyengine.com/jmeforum/index.php?topic=10569.0 and things started to go better.

I then use lwjgl's AppletLoader, and loads my applet.







But now i want physics in my applet, and this seems close to impossible.  I have created an SimplePhysicsApplet extended from BaseSimpleApplet in the thread, and it runs when i run it in eclipse.

When i try to run it on an webpage, i get the following error:


WARNING: Failed to use physics implementation 'com.jmex.physics.impl.physx.PhysXSpace$PhysXFactory' due to Exception/Error: java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/physx/PhysXSpace$PhysXFactory
java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/physx/PhysXSpace$PhysXFactory
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:360)
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
04.jun.2009 18:13:22 org.odejava.Odejava <clinit>
SEVERE: Native code library (32 and 64 bit library) failed to load: java.lang.UnsatisfiedLinkError: no odejava in java.library.path
java.lang.UnsatisfiedLinkError: no odejava in java.library.path
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at org.odejava.Odejava.<clinit>(Odejava.java:88)
   at com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory.getImplementationVersion(OdePhysicsSpace.java:188)
   at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:373)
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
04.jun.2009 18:13:22 com.jmex.physics.PhysicsSpace scanAvailableImplementations
WARNING: Failed to use physics implementation 'com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory' due to Exception/Error: java.lang.UnsupportedOperationException: Failed to load natives
java.lang.UnsupportedOperationException: Failed to load natives
   at org.odejava.Odejava.init(Odejava.java:125)
   at com.jmex.physics.impl.ode.OdePhysicsSpace$OdeFactory.getImplementationVersion(OdePhysicsSpace.java:188)
   at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:373)
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
Caused by: java.lang.UnsatisfiedLinkError: no odejava in java.library.path
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at org.odejava.Odejava.<clinit>(Odejava.java:88)
   ... 6 more
04.jun.2009 18:13:22 com.jmex.physics.PhysicsSpace scanAvailableImplementations
WARNING: Failed to use physics implementation 'com.jmex.physics.impl.joode.JoodePhysicsSpace$JoodeFactory' due to Exception/Error: java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/joode/JoodePhysicsSpace$JoodeFactory
java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/joode/JoodePhysicsSpace$JoodeFactory
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:360)
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
04.jun.2009 18:13:22 com.jmex.physics.PhysicsSpace scanAvailableImplementations
WARNING: Failed to use physics implementation 'com.jmex.physics.impl.jbullet.JBulletPhysicsSpace$JBulletFactory' due to Exception/Error: java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/jbullet/JBulletPhysicsSpace$JBulletFactory
java.lang.ClassFormatError: Incompatible magic value 1013478509 in class file com/jmex/physics/impl/jbullet/JBulletPhysicsSpace$JBulletFactory
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.security.SecureClassLoader.defineClass(Unknown Source)
   at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Unknown Source)
   at com.jmex.physics.PhysicsSpace.scanAvailableImplementations(PhysicsSpace.java:360)
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:340)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
04.jun.2009 18:13:22 class Lesson1 start()
SEVERE: Exception in game loop
java.lang.IllegalStateException: No physics implementation was registered nor found!
   at com.jmex.physics.PhysicsSpace.create(PhysicsSpace.java:348)
   at SimplePhysicsApplet.initSystem(SimplePhysicsApplet.java:140)
   at BaseApplet.gameLoop(BaseApplet.java:119)
   at BaseApplet$1.run(BaseApplet.java:93)
04.jun.2009 18:13:22 BaseSimpleApplet cleanup
INFO: Cleaning up resources.
04.jun.2009 18:13:22 BaseApplet$1 run
INFO: Application ending.



It seems like the physics engine cant find its native files. Do anyone know what i should do to solve this?

Update:



My suspicion was correct; the applet cant find odejava.dll.  I tried to put this in c:/windows/win32, and the applet ran as expected. This is not how i want it to be…



I have changed lwjgl's AppletLoader to extract a jar file with the odejava-natives.

But it still cant find these files. Is there an System.setProperty() or something like that, that has to be set to a right value?