LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.
A user had set their system username to Daylen, however folders cannot have trailing spaces on Windows. Windows then uses TEMP for the user directory (C:\Users\TEMP) because of this, however the jvm user.name contains the name with the trailing slash. This causes lwjgl to fail to load natives due to being unable to create the temporary directory.
Vaguely related to this, I've seen if you run both a 32 and 64bit jvm at once, lwjgl cannot start on the 2nd vm due to them both choosing the same temp dir location and fighting with each other.
I recommend changing the default SHARED_LIBRARY_EXTRACT_DIRECTORY to lwjgl- + os.arch perhaps.
java.lang.RuntimeException: Failed to extract lwjgl library
at org.lwjgl.system.SharedLibraryLoader.load(SharedLibraryLoader.java:93)
at org.lwjgl.system.Library.loadSystem(Library.java:123)
at org.lwjgl.system.Library.loadSystem(Library.java:63)
at org.lwjgl.system.Library.<clinit>(Library.java:51)
at org.lwjgl.opengl.GL.<clinit>(GL.java:80)
at net.runelite.client.plugins.gpu.GpuPlugin.lambda$startUp$1(GpuPlugin.java:305)
at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:99)
at net.runelite.client.callback.Hooks.tick(Hooks.java:203)
at client.ha(client.java:15509)
at client.ag(client.java)
at as.io(as.java:359)
at as.run(as.java:338)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.nio.file.InvalidPathException: Trailing char < > at index 11: lwjglDaylen \3.3.1-build-7\lwjgl.dll
at java.base/sun.nio.fs.WindowsPathParser.normalize(Unknown Source)
at java.base/sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsPathParser.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsPath.parse(Unknown Source)
at java.base/sun.nio.fs.WindowsFileSystem.getPath(Unknown Source)
at java.base/java.nio.file.Path.of(Unknown Source)
at java.base/java.nio.file.Paths.get(Unknown Source)
at org.lwjgl.system.SharedLibraryLoader.getExtractPath(SharedLibraryLoader.java:138)
at org.lwjgl.system.SharedLibraryLoader.load(SharedLibraryLoader.java:70)
... 12 more
Version
3.3.1
Platform
Windows x64
JDK
adoptopenjdk
Module
core
Bug description
A user had set their system username to
Daylen
, however folders cannot have trailing spaces on Windows. Windows then usesTEMP
for the user directory (C:\Users\TEMP
) because of this, however the jvm user.name contains the name with the trailing slash. This causes lwjgl to fail to load natives due to being unable to create the temporary directory.Vaguely related to this, I've seen if you run both a 32 and 64bit jvm at once, lwjgl cannot start on the 2nd vm due to them both choosing the same temp dir location and fighting with each other.
I recommend changing the default
SHARED_LIBRARY_EXTRACT_DIRECTORY
tolwjgl- + os.arch
perhaps.Stacktrace or crash log output