Hello Everyone,
I'm currently trying to get LWJGL set up on my Raspberry Pi (Ubuntu 20.10) though Gradle. I encountered an issue where the lwjgl-nfd-3.2.3-natives-linux-arm64.jar file does not seem to exist in the repo.maven.apache.org website.
In case you need to see this, I copied over the error message and the Gradle build script that I used.
Error:
2:47:13 PM: Executing task 'Main.main()'...
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :Main.main() FAILED
FAILURE: Build failed with an exception.
* Where:
Initialization script '/tmp/ijresolvers.gradle' line: 243
* What went wrong:
Execution failed for task ':Main.main()'.
> Could not resolve all files for configuration ':runtimeClasspath'.
> Could not find lwjgl-nfd-3.2.3-natives-linux-arm64.jar (org.lwjgl:lwjgl-nfd:3.2.3).
Searched in the following locations:
https://repo.maven.apache.org/maven2/org/lwjgl/lwjgl-nfd/3.2.3/lwjgl-nfd-3.2.3-natives-linux-arm64.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
build.gradle
import org.gradle.internal.os.OperatingSystem
plugins {
id 'java'
}
group 'org.thomasa'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.11
project.ext.lwjglVersion = "3.2.3"
project.ext.jomlVersion = "1.9.25"
switch (OperatingSystem.current()) {
case OperatingSystem.LINUX:
def osArch = System.getProperty("os.arch")
project.ext.lwjglNatives = osArch.startsWith("arm") || osArch.startsWith("aarch64")
? "natives-linux-${osArch.contains("64") || osArch.startsWith("armv8") ? "arm64" : "arm32"}"
: "natives-linux"
break
case OperatingSystem.MAC_OS:
project.ext.lwjglNatives = "natives-macos"
break
case OperatingSystem.WINDOWS:
project.ext.lwjglNatives = System.getProperty("os.arch").contains("64") ? "natives-windows" : "natives-windows-x86"
break
}
repositories {
mavenCentral()
}
dependencies {
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
implementation "org.lwjgl:lwjgl"
implementation "org.lwjgl:lwjgl-assimp"
implementation "org.lwjgl:lwjgl-egl"
implementation "org.lwjgl:lwjgl-glfw"
implementation "org.lwjgl:lwjgl-nfd"
implementation "org.lwjgl:lwjgl-openal"
implementation "org.lwjgl:lwjgl-opengles"
implementation "org.lwjgl:lwjgl-stb"
runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-nfd::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-opengles::$lwjglNatives"
runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"
implementation "org.joml:joml:${jomlVersion}"
}
test {
useJUnitPlatform()
}
This is a known issue, LWJGL lacks NFD builds for Linux/ARM atm. Please open an issue on github and you'll get notified if/when it becomes available.