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;
}
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"