【问题标题】:Can't load IA 32-bit .dll on a AMD 64-bit platform LWJGL无法在 AMD 64 位平台 LWJGL 上加载 IA 32 位 .dll
【发布时间】:2014-05-09 01:41:33
【问题描述】:

我正在尝试从小程序中使用 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,但它确实如此,而且我无法找出问题所在。帮忙?

【问题讨论】:

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

标签: java dll lwjgl unsatisfiedlinkerror


【解决方案1】:

我遇到了同样的问题。我不得不查看 LWJGL 代码,发现如果加载 lwjgl64.dll 失败,它将尝试加载 32 位版本。令人困惑的部分是这种失败是无声的。您可以通过激活 LWJGL 调试模式使其生成日志,例如:

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

这样做会导致尝试加载 64 位库时出现以下错误:

[错误] [LWJGL] 无法加载 64 位库:lwjgl64.dll:访问权限为 拒绝

如果您有相同的解决方案,似乎是为文件提供适当的“执行”权限(this post 帮助了我)。我不确定如何在所有 Windows 版本中执行此操作,但幸运的是我也可以通过 linux 访问我的文件,并且一个简单的 chmod +x 工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    相关资源
    最近更新 更多