Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-210887

Game launch crashes on Linux with Unicode home folder/username

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • 22w16a
    • 1.16.4, 1.18 Pre-release 1, 1.18.1
    • Community Consensus
    • Crash
    • Important
    • Platform

      On Linux if I have home directory such as `/home/Dāvis` then it crashes with
       

      ---- Minecraft Crash Report ----
      // This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~]
      
      Time: 21.8.1 08:22
      Description: 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 dynamically load library: /home/Dāvis/.minecraft/bin/cf8c-d22e-2f44-334a/libglfw.so(error = null)
      	at deo.<clinit>(SourceFile:46)
      	... 3 more
      Caused by: java.lang.UnsatisfiedLinkError: Failed to dynamically load library: /home/Dāvis/.minecraft/bin/cf8c-d22e-2f44-334a/libglfw.so(error = null)
      	at org.lwjgl.system.linux.LinuxLibrary.loadLibrary(LinuxLibrary.java:32)
      	at org.lwjgl.system.linux.LinuxLibrary.<init>(LinuxLibrary.java:19)
      	at org.lwjgl.system.APIUtil.apiCreateLibrary(APIUtil.java:123)
      	at org.lwjgl.system.Library.loadNative(Library.java:335)
      	at org.lwjgl.system.Library.loadNative(Library.java:281)
      	at org.lwjgl.system.Library.loadNative(Library.java:205)
      	at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:674)
      	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
      	at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:330)
      	at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:327)
      	at java.lang.ClassValue.getFromHashMap(ClassValue.java:227)
      	at java.lang.ClassValue.getFromBackup(ClassValue.java:209)
      	at java.lang.ClassValue.get(ClassValue.java:115)
      	at java.lang.invoke.DirectMethodHandle.checkInitialized(DirectMethodHandle.java:351)
      	at java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:341)
      	at java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:373)
      	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 thread
      Stacktrace:
      	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.4
      	Minecraft Version ID: 1.16.4
      	Operating System: Linux (amd64) version 5.10.5-arch1-1
      	Java Version: 1.8.0_265, Oracle Corporation
      	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
      	Memory: 1075552088 bytes (1025 MB) / 2147483648 bytes (2048 MB) up to 2147483648 bytes (2048 MB)
      	CPUs: 8
      	JVM Flags: 8 total; -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
      	Launched Version: 1.16.4
      	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>
      

       

      Found that it can be workarounded by specifying non-Unicode `--workDir`
       

      Also note that there's another/related bug if I try to use different non-official launcher then it crashes similar error because it copies `libglfw.so` to path like `/tmp/lwjglDāvis/3.2.2-build-10/}` with fails to load aswell.

      This can be workarouned by passing `-Duser.name=ascii_name` JVM argument.

       
      This bug exists since 1.13+ as 1.12 works fine.
       

            Unassigned Unassigned
            davispuh Dāvis Mosāns
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: