I'm trying to run Minecraft Java Edition on Aarch64 Windows device.
My device is Surface Pro X. Since this guy's CPU(ARM) doesn't support any x86 features, it has to emeulate the x86 features. So huge performance drop occurs. It's fine with simple programs like Chrome or MS Office, but if you try to run something a little bit heavier, like Minecraft, it becomes SSSSLLLLLLOOOOOOWWWWWW as hell.
Since Minecraft JE is a Java program, I thought that I can somehow manage to run Minecraft but bypassing the x86 emulation, using the Aarch64 ported version of Java Runtime, JVM or whatever.
So I installed OpenJDK 16.0.2 Aarch64 Windows version (that was the only ARM Java I could find) and told Minecraft launcher to use the OpenJDK's javaw.exe.(of course, the one inside the bin folder) But it didn't work.
Release 1.17~ would just crash and leave 'Exit code 0', and Release 1.16.5 would leave a Crash Report, like down below.
Minecraft Crash Report ----// Uh... Did I do that?
Time: 21. 8. 24. 오후 10:21Description: Initializing game
java.lang.ExceptionInInitializerError at dkd.<init>(SourceFile:146) at djz.<init>(SourceFile:440) at net.minecraft.client.main.Main.main(SourceFile:177)Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Failed to locate library: lwjgl.dll at deo.<clinit>(SourceFile:46) ... 3 moreCaused by: java.lang.UnsatisfiedLinkError: Failed to locate library: lwjgl.dll at org.lwjgl.system.Library.loadSystem(Library.java:147) at org.lwjgl.system.Library.loadSystem(Library.java:67) at org.lwjgl.system.Library.<clinit>(Library.java:50) at org.lwjgl.system.MemoryAccessJNI.<clinit>(MemoryAccessJNI.java:13) at org.lwjgl.system.Pointer.<clinit>(Pointer.java:28) at org.lwjgl.system.Platform.mapLibraryNameBundled(Platform.java:80) at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:674) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155) at java.base/java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:378) at java.base/java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:375) at java.base/java.lang.ClassValue.getFromHashMap(ClassValue.java:228) at java.base/java.lang.ClassValue.getFromBackup(ClassValue.java:210) at java.base/java.lang.ClassValue.get(ClassValue.java:116) at java.base/java.lang.invoke.DirectMethodHandle.checkInitialized(DirectMethodHandle.java:401) at java.base/java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:389) at java.base/java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:423) at deo.<clinit>(SourceFile:43) ... 3 more
A detailed walkthrough of the error, its code path and all known details is as follows:---------------------------------------------------------------------------------------
– Head --Thread: Render threadStacktrace: at dkd.<init>(SourceFile:146) at djz.<init>(SourceFile:440)
– Initialization --Details:Stacktrace: at net.minecraft.client.main.Main.main(SourceFile:177)
– System Details --Details: Minecraft Version: 1.16.5 Minecraft Version ID: 1.16.5 Operating System: Windows 10 (aarch64) version 10.0 Java Version: 16.0.2, Microsoft Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft Memory: 907209096 bytes (865 MB) / 1342177280 bytes (1280 MB) up to 2147483648 bytes (2048 MB) CPUs: 8 JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M Launched Version: 1.16.5 Backend library: LWJGL version 3.2.2 build 10 Backend API: ~ERROR~ NoClassDefFoundError: Could not initialize class org.lwjgl.glfw.GLFW GL Caps: Using VBOs: Yes Is Modded: Probably not. Jar signature remains and client brand is untouched. Type: Client (map_client.txt) CPU: <unknown>
Yeah, it's complaining about not having lwjgl.dll file i guess...? but I have no idea what should I do in order to deal with this thing.
I left a crash report file from 1.16.5. Hopefully that helps us something...
Thanks.
== Update ==
When this error happens, I found that 'OpenJDK platfrom binary' uses virtually 90% of my CPU. Still got no idea what it could mean.
I could also get a log from 1.17.1 version when it crashes. I used "-Dorg.lwjgl.util.Debug=true" parameter in order to let the game display some more information what could be wrong. I uploaded "from1171.log" file, hopefully this can help solving this problem.
Linked issues
relates to
Attachments
Comments

Not quite. My user folder directory should have no problem at all. The folder name is just 'klbsi'.
"C:\Users\klbsi\AppData\Roaming" should have no problem, right?
It shouldn't do, no. I'll mark the reports as related in that case a it's the same dll it's crashing in

https://github.com/adiantek/mc-spx
I described here how to run 1.17 and 1.17.1 on Surface Pro X without any emulation.

Does this still an issue in 1.19.3?

Please check if this is still an issue for you in 1.19.3 or later.
Does MCL-9929 describe your issue?