无法在AMD 64位平台上加载IA 32位.DLL LWJGL

问题描述:

我试图从小应用程序中使用LWJGL,但似乎在我的64位机器上加载32位库给我这个错误:java.lang.UnsatisfiedLinkError: C:\Users\Max\AppData\Roaming\mcoln172\lwjgl.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform,我查看了LWJGL中的Sys文件,它使用os.arch值来确定使用64位或32位库。我打印出我的电脑os.arch,看起来它正如预期的那样是amd64。它甚至不应该尝试加载lwjgl.dll,但它确实,我无法找出什么是错的。帮帮我?无法在AMD 64位平台上加载IA 32位.DLL LWJGL

+0

将代码发布到加载LWJGL库的位置(如果适用)。您可能想尝试显式加载64位jar。 – MarsAtomic

我有同样的问题。我必须查看LWJGL代码才能发现,如果加载lwjgl64.dll失败,它将尝试加载32位版本。令人困惑的是,这种失败是无声的。你可以把它通过激活LWJGL调试模式下生成日志,具有例如:

System.setProperty("org.lwjgl.util.Debug", "true") 

这样做,显示了以下错误尝试加载64位lib目录下:如果你有同样的

[error] [LWJGL] Failed to load 64 bit library: lwjgl64.dll: Access is denied

,解决方案似乎是给予文件适当的“执行”权限(this post对我有帮助)。我不知道如何在所有的Windows版本中做到这一点,但幸运的是,我也可以通过Linux访问我的文件,并且使用了简单的chmod +x