Windows 7 jwgl native dll problems

Ok, I hear this is a common problem but have only found the one wiki page on it so far.



java.lang.UnsatisfiedLinkError: C:UserstravisDownloadscute_god_distcute_god_distliblwjglnativewindowslwjgl.dll: Can’t load IA 32-bit .dll on a AMD 64-bit platform



That’s the original problem, seems to be caused by having lwjgl on the native library path. I remove it and the problem progresses to:

C:UserstravisDownloadscute_god_distcute_god_dist>java -jar -Djava.library.path=“lib/lwjgl/native/windows;lib/jogl/native/windows_amd64” Main_Game.jar

28/09/2010 7:59:23 AM com.jme.app.AbstractGame getAttributes

SEVERE:



Native library not set - go to

http://www.jmonkeyengine.com/wiki/doku.php?id=no_lwjgl_in_java.library.path

for details.

java.lang.UnsatisfiedLinkError: no lwjgl 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.lwjgl.Sys$1.run(Sys.java:72)

at java.security.AccessController.doPrivileged(Native Method)

at org.lwjgl.Sys.doLoadLibrary(Sys.java:65)

at org.lwjgl.Sys.loadLibrary(Sys.java:81)

at org.lwjgl.Sys.(Sys.java:98)

at org.lwjgl.opengl.Display.(Display.java:129)

at com.jme.system.lwjgl.LWJGLPropertiesDialog$ModesRetriever.run(LWJGLPropertiesDialog.java:682)

at com.jme.app.AbstractGame.getAttributes(AbstractGame.java:252)

at com.jme.app.BaseGame.start(BaseGame.java:67)

at cutegod.jme.Main.main(Main.java:70)




I’ve got this game working on my mac, so I think I can reasonable safely rule out a jar classpath problem.

I grabbed my dll files from this download:

http://code.google.com/p/jmonkeyengine/downloads/detail?name=jME2_0_1-StableDistribution.zip&can=2&q=Type%3DArchive



Only thing I can think of from this point is that the dll’s included in jME2 don’t work in windows 7 64 bit, but I reckon I would have seen that on the wiki if it were the case.



One other thing that may not be standard for most deployments is that I’ve used eclipse’s fancy pants “bundle everything into a single jar” feature, however given that I don’t have class not found errors, and given that it works fine on my mac, I’m pretty certain that’s not an issue.



Help? Please?

Well, you cannot just remove the lwjgl classes and native libraries and expect it to work, you also have to download the latest lwjgl version from the lwjgl.org site and add those libararies instead :wink: The latest version should be 64bit compatible I think.



Cheers,

Normen

I may not have expressed myself correctly…



The lwjgl classes are still on the class path, they are packaged within Main_Game.jar

This works without a problem on the Mac, which is why I don’t think it’s the problem.



The native libraries are also there assuming the jME distribution is correct.



I’ll try using dll’s from the LWJGL site and see if that improves things, thanks for the tip



[EDIT]

Ahh, I think I see where I miscommunicated.

there are two dll files in the lwjgl native folder. lwjgl.dll and lwjgl64.dll

My initial assumption was that lwjgl64 is the 64 bit version of lwjgl.dll

Perhaps that is not correct and the lwjgl.dll contains required functionality that is not to be found in the lwjgl64.dll file

This happens when you use 64bit jvm.

I don’t know how to solve it.

But if you can use 32bit jvm, error goes away.

Thanks for the sanity check Lim, unfortunately I have users who have 64 bit JVM’s so I will keep trying to figure it out and solve the issue. It’s nice to know there’s a fallback though

In ym tests it always helped to remove the lwjgl stuff from the path (native and librarys) download actuall ones from lwjgl site. And put it in th lib path + put the dlls in the execution folder. For some reason the automatic extraction seems to fail sometimes on 64 bit :confused:

Thanks Empire. I grabbed lwgl-2.5 from the lwgl site and I get a fair bit further (software starts, it asks me for a resolution etc) however then it crashes out due to the jar I have not containing the util package (GLU stuff).



Anyone know which version of lwjgl jME2 uses?



in other news, I found a similar problem here: http://hub.jmonkeyengine.org/groups/general-2/forum/topic/win-vista-x64-and-32bit-dlls



[EDIT]

My bad, the download had a bunch of jars in it, including lwjgl-util.jar which of course, had the classes I was missing.



[Final edit]

Ok, I have a working deployment on 64 bit windows 7 now.

So far as I can tell the problem is that the dll’s that are packaged with jME2 the stable release do not support win7 64 bit.

I’m not certain whether it’s a problem with the specific version of lwjgl that jME is using or whether it’s just the artifacts becoming corrupted some how.



Either way it seems like a pretty significant issue, I’d recommend mentioning the 64 bit case specifically on the wiki page that your software directs people to, and potentially trying to get another release out that actually supports 64 bit windows.