You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LWJGL项目Gradle运行报错:无法加载lwjgl.dll求助

解决LWJGL java.lang.UnsatisfiedLinkError: lwjgl.dll 加载失败问题

问题分析

你遇到的UnsatisfiedLinkError是因为LWJGL无法定位Windows平台的本地库文件(lwjgl.dll)导致的。从你的build.gradle配置来看,虽然已声明本地库依赖,但可能存在以下问题:

  • 冗余的LWJGL模块依赖未对应本地库配置
  • JDK19与LWJGL 3.3.1存在兼容性冲突
  • Gradle运行时未正确识别本地库路径

修复步骤

1. 精简LWJGL依赖(核心修复)

你的build.gradle中引入了大量未使用的LWJGL模块,部分模块仅添加了implementation依赖但无对应runtimeOnly本地库,这会触发不必要的库加载请求。建议只保留实际用到的模块:

dependencies {
    implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")

    // 仅保留项目实际使用的模块示例
    implementation "org.lwjgl:lwjgl"
    implementation "org.lwjgl:lwjgl-glfw"
    implementation "org.lwjgl:lwjgl-opengl"
    implementation "org.lwjgl:lwjgl-stb"

    // 对应本地库依赖
    runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"

    implementation "org.joml:joml:${jomlVersion}"
}

2. 调整JDK兼容性

JDK19为非LTS版本,与LWJGL 3.3.1兼容性较差。在build.gradle中明确指定稳定JDK版本(如JDK17):

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

同时在IntelliJ的项目SDK配置中切换为JDK17。

3. 强制Gradle提取本地库

添加Gradle任务手动提取本地库到指定目录,并指定JVM库搜索路径:

task extractNatives(type: Copy) {
    from configurations.runtimeClasspath
    include "**/*.dll"
    into "$buildDir/natives"
}

run {
    dependsOn extractNatives
    jvmArgs "-Djava.library.path=$buildDir/natives"
}

该任务会将所有本地DLL文件复制到build/natives目录,确保运行时能正确找到。

4. 启用调试模式排查细节

在运行配置中添加以下JVM参数,查看详细的库加载日志:

-Dorg.lwjgl.util.Debug=true -Dorg.lwjgl.util.DebugLoader=true

根据日志可确认库搜索路径和缺失的具体文件,进一步定位问题。

验证操作

  1. 清理缓存并重新构建:执行 ./gradlew clean build
  2. 运行项目:执行 ./gradlew run

内容的提问来源于stack exchange,提问作者MassiveDifference

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:50:22