lwjgl.dll not found in java.library.path

100 Views Asked by At

i'm trying to use lwjgl, using intellij and gradle.

i followed this tutorial: https://github.com/LWJGL/lwjgl3-wiki/wiki/1.2.-Install but stuck in this error.

    [LWJGL] Version: 3.3.3+5
     OS: Windows 10 v10.0
    JRE: Windows amd64 17.0.9
    JVM: OpenJDK 64-Bit Server VM v17.0.9+8-LTS by Amazon.com Inc.
[LWJGL] Loading JNI library: lwjgl
    Module: org.lwjgl
    windows/x64/org/lwjgl/lwjgl.dll not found in java.library.path=C:\Users\SaluC\.jdks\corretto-17.0.9\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Python313\Scripts\;C:\Python313\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;E:\Programas\jdk-17\bin;C:\Program Files\CMake\bin;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Users\SaluC\AppData\Local\Microsoft\WindowsApps;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2.5\bin;;C:\Users\SaluC\AppData\Local\GitHubDesktop\bin;C:\Users\SaluC\AppData\Local\Programs\Microsoft VS Code\bin;.
    lwjgl.dll not found in java.library.path
[LWJGL] Failed to load a library. Possible solutions:
    a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
    b) Add the JAR that contains the shared library to the classpath.
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to locate library: lwjgl.dll
    at [email protected]+5/org.lwjgl.system.Library.loadSystem(Library.java:174)
    at [email protected]+5/org.lwjgl.system.Library.loadSystem(Library.java:64)
    at [email protected]+5/org.lwjgl.system.Library.<clinit>(Library.java:52)
    at [email protected]+5/org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:100)
    at [email protected]+5/org.lwjgl.system.Pointer$Default.<clinit>(Pointer.java:67)
    at [email protected]+5/org.lwjgl.system.Callback.<clinit>(Callback.java:40)
    at org.example/org.example.WindowManager.init(WindowManager.java:37)
    at org.example/org.example.Main.main(Main.java:9)

i find some related posts but they were talking about the jvm used being 32 bits, or about eclipse, and I couldn't solve the problem. this is my build.gradle:

plugins {
    id "java"
    id "application"
}

group "com.webkriativa.noahviewer"
version "0.4"

project.ext.lwjglVersion = "3.3.3"
project.ext.lwjglNatives = "natives-windows"

repositories {
    mavenCentral()
}

application {
    mainModule = "com.webkriativa.noahviewer"
    mainClass = "com.webkriativa.noahviewer.Main"
}

dependencies {
    implementation("org.joml:joml:1.10.5")
    compileOnly("org.projectlombok:lombok:1.18.28")
    annotationProcessor("org.projectlombok:lombok:1.18.28")
    testCompileOnly("org.projectlombok:lombok:1.18.28")
    testAnnotationProcessor("org.projectlombok:lombok:1.18.28")

    implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
    implementation "org.lwjgl:lwjgl"
    implementation "org.lwjgl:lwjgl-assimp"
    implementation "org.lwjgl:lwjgl-bgfx"
    implementation "org.lwjgl:lwjgl-cuda"
    implementation "org.lwjgl:lwjgl-egl"
    implementation "org.lwjgl:lwjgl-fmod"
    implementation "org.lwjgl:lwjgl-freetype"
    implementation "org.lwjgl:lwjgl-glfw"
    implementation "org.lwjgl:lwjgl-harfbuzz"
    implementation "org.lwjgl:lwjgl-hwloc"
    implementation "org.lwjgl:lwjgl-jawt"
    implementation "org.lwjgl:lwjgl-jemalloc"
    implementation "org.lwjgl:lwjgl-ktx"
    implementation "org.lwjgl:lwjgl-libdivide"
    implementation "org.lwjgl:lwjgl-llvm"
    implementation "org.lwjgl:lwjgl-lmdb"
    implementation "org.lwjgl:lwjgl-lz4"
    implementation "org.lwjgl:lwjgl-meow"
    implementation "org.lwjgl:lwjgl-meshoptimizer"
    implementation "org.lwjgl:lwjgl-nanovg"
    implementation "org.lwjgl:lwjgl-nfd"
    implementation "org.lwjgl:lwjgl-nuklear"
    implementation "org.lwjgl:lwjgl-odbc"
    implementation "org.lwjgl:lwjgl-openal"
    implementation "org.lwjgl:lwjgl-opencl"
    implementation "org.lwjgl:lwjgl-opengl"
    implementation "org.lwjgl:lwjgl-opengles"
    implementation "org.lwjgl:lwjgl-openvr"
    implementation "org.lwjgl:lwjgl-openxr"
    implementation "org.lwjgl:lwjgl-opus"
    implementation "org.lwjgl:lwjgl-ovr"
    implementation "org.lwjgl:lwjgl-par"
    implementation "org.lwjgl:lwjgl-remotery"
    implementation "org.lwjgl:lwjgl-rpmalloc"
    implementation "org.lwjgl:lwjgl-shaderc"
    implementation "org.lwjgl:lwjgl-spvc"
    implementation "org.lwjgl:lwjgl-sse"
    implementation "org.lwjgl:lwjgl-stb"
    implementation "org.lwjgl:lwjgl-tinyexr"
    implementation "org.lwjgl:lwjgl-tinyfd"
    implementation "org.lwjgl:lwjgl-tootle"
    implementation "org.lwjgl:lwjgl-vma"
    implementation "org.lwjgl:lwjgl-vulkan"
    implementation "org.lwjgl:lwjgl-xxhash"
    implementation "org.lwjgl:lwjgl-yoga"
    implementation "org.lwjgl:lwjgl-zstd"
    runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-bgfx::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-freetype::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-harfbuzz::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-hwloc::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-jemalloc::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-ktx::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-libdivide::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-llvm::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-lmdb::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-lz4::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-meow::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-meshoptimizer::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-nanovg::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-nfd::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-nuklear::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-opengles::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-openvr::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-openxr::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-opus::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-ovr::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-par::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-remotery::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-rpmalloc::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-shaderc::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-spvc::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-sse::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-tinyexr::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-tinyfd::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-tootle::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-vma::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-xxhash::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-yoga::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-zstd::$lwjglNatives"
}

run {
    jvmArgs = ["-Dorg.lwjgl.util.Debug=true", "-Dorg.lwjgl.util.DebugLoader=true"]
}

i'm using modules, this is module-info.java:

module org.example {
    requires static lombok;
    requires org.lwjgl;
    requires org.lwjgl.glfw;
    requires org.lwjgl.opengl;
    requires org.joml;
}
1

There are 1 best solutions below

0
Salu Ramos On

i fix the problem downloading the lwjgl.dll file here: https://www.lwjgl.org/browse/stable/windows/x64

then i add the path to the file inside jvmArgs: -Djava.library.path="path to lwjgl.dll"