# minecraft, 11.2 - Failed to locate library: liblwjgl.so



## Petr Fischer (Jul 30, 2018)

Hello, I got this error today - micraft client can't start.

I installed minecraft via minecraft-client package and yes, I have proper path "/usr/local/share/minecraft-client/minecraft-runtime" in profile.

Error:

```
---- Minecraft Crash Report ----
// I blame Dinnerbone.

Time: 30.7.18 0:56
Description: Initializing game

java.lang.UnsatisfiedLinkError: Failed to locate library: liblwjgl.so
        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.MemoryUtil.<clinit>(MemoryUtil.java:61)
        at org.lwjgl.system.MemoryStack.<init>(MemoryStack.java:61)
        at org.lwjgl.system.MemoryStack.create(MemoryStack.java:82)
        at org.lwjgl.system.MemoryStack.create(MemoryStack.java:71)
        at java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:284)
        at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
        at java.lang.ThreadLocal.get(ThreadLocal.java:170)
        at org.lwjgl.system.MemoryStack.stackGet(MemoryStack.java:628)
        at org.lwjgl.system.MemoryStack.stackPush(MemoryStack.java:637)
        at cfs.a(SourceFile:126)
        at cfi.an(SourceFile:554)
        at cfi.am(SourceFile:433)
        at cfi.a(SourceFile:377)
        at net.minecraft.client.main.Main.main(SourceFile:144)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
        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.MemoryUtil.<clinit>(MemoryUtil.java:61)
        at org.lwjgl.system.MemoryStack.<init>(MemoryStack.java:61)
        at org.lwjgl.system.MemoryStack.create(MemoryStack.java:82)
        at org.lwjgl.system.MemoryStack.create(MemoryStack.java:71)
        at java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:284)
        at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
        at java.lang.ThreadLocal.get(ThreadLocal.java:170)
        at org.lwjgl.system.MemoryStack.stackGet(MemoryStack.java:628)
        at org.lwjgl.system.MemoryStack.stackPush(MemoryStack.java:637)
        at cfs.a(SourceFile:126)
        at cfi.an(SourceFile:554)
        at cfi.am(SourceFile:433)

-- Initialization --
Details:
Stacktrace:
        at cfi.a(SourceFile:377)
        at net.minecraft.client.main.Main.main(SourceFile:144)

-- System Details --
Details:
        Minecraft Version: 1.13
        Operating System: FreeBSD (amd64) version 11.2-RELEASE
        Java Version: 1.8.0_172, Oracle Corporation
        Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
        Memory: 63097544 bytes (60 MB) / 182792192 bytes (174 MB) up to 1060372480 bytes (1011 MB)
        JVM Flags: 5 total; -Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
        Launched Version: 1.13
        LWJGL: 3.1.6 build 14
        OpenGL: ~~ERROR~~ NoClassDefFoundError: Could not initialize class org.lwjgl.system.Library
        GL Caps:
        Using VBOs: Yes
        Is Modded: Probably not. Jar signature remains and client brand is untouched.
        Type: Client (map_client.txt)
        Resource Packs:
        Current Language: ~~ERROR~~ NullPointerException: null
        Profiler Position: N/A (disabled)
        CPU: <unknown>
```

lwjgl library is installed:

```
# pkg info -l lwjgl
lwjgl-2.9.3:
        /usr/local/lib/lwjgl2.9.3/liblwjgl64.so
        /usr/local/share/java/classes/lwjgl/lwjgl.jar
        /usr/local/share/java/classes/lwjgl/lwjgl_test.jar
        /usr/local/share/java/classes/lwjgl/lwjgl_util.jar
        /usr/local/share/java/classes/lwjgl/lwjgl_util_applet.jar
        /usr/local/share/licenses/lwjgl-2.9.3/BSD3CLAUSE
        /usr/local/share/licenses/lwjgl-2.9.3/LICENSE
        /usr/local/share/licenses/lwjgl-2.9.3/catalog.mk
```

Thanks for ideas!


----------



## ShelLuser (Jul 30, 2018)

What FreeBSD version are you using and where did the package come from?  I assume you installed it using `# pkg install minecraft-client`? If so: did you also install any other software using this same method?

Performed any updates recently?


----------



## Petr Fischer (Jul 30, 2018)

1) 11.2-REELASE
2) yes, minecraft-client package
3) of course, I have  installed cca  1300 other packages

Minecraft worked perfectly about 2 years. Now, this problem with lwjgl...


----------



## ShelLuser (Jul 30, 2018)

It could be an issue with the package itself, I'll see if I can reproduce any issues later on.


----------



## ShelLuser (Jul 31, 2018)

Right, in the mean time I performed my tests on a 11.2 environment which was fully upgraded through both freebsd-update as well as binary packages. And I can confirm the problem; perfect reproduction of the issue.

_However..._ I also noticed that this only happens with 1.13 and not so much 1.12.2 or other versions before that. Considering the massive overhaul which 1.13 got and the fact that the targeted OS was Linux (not so much FreeBSD) it becomes difficult for me to determine the cause right now.

This could be a problem with 1.13 itself with regards to Linux / Unix-like compatibility, it could be an issue with the launcher (the Windows launcher got several updates through the snapshot process) or it could be an issue with the port itself. Considering the nature of the error it looks like a classpath related issue, but I haven't fully tested that.

Bottom line: this isn't you, it's a system problem. 'somewhere'.


----------



## JAW (Aug 1, 2018)

A stab in the dark but could it be down to it looking for liblwjgl.so (32-bit) and not liblwjgl64.so (64-bit) lib?


----------



## Petr Fischer (Aug 1, 2018)

JAW said:


> A stab in the dark but could it be down to it looking for liblwjgl.so (32-bit) and not liblwjgl64.so (64-bit) lib?


Yes. It looks like lwjgl library is 64bit only and minecraft (java bindings) is looking for 32bit liblwjgl.so


----------



## ShelLuser (Aug 1, 2018)

Well, according to the package Makefile games/lwjgl is supposed to satisfy both:

```
ONLY_FOR_ARCHS= i386 amd64
```
But I agree, the error message definitely seems to point in this direction. It wouldn't be the first time 1.13 caused errors on 32bit platforms due to 64bit settings.


----------



## unC0Rr (Aug 2, 2018)

I think the problem lies in that mc 1.13 requires version 3 of the library (specifically, 3.1.6), while 1.12.2 was using lwjgl 2.9.4.


----------



## Petr Fischer (Aug 2, 2018)

It looks like some work for lwjgl port maintainer. Do you think I have (or someone) to enter a bug/report to the FreeBSD Bugzilla (ports section)?


----------



## whilhelm (Sep 25, 2018)

Every Minecraft version prior to 1.13 will run. In order to get 1.13 and above to work, lwjgl 3.2 must be ported.


----------



## Petr Fischer (Sep 25, 2018)

whilhelm But minecraft updates itself (downloads new java packages) automatically, or not? How to stick with given version?


----------



## whilhelm (Sep 25, 2018)

Petr Fischer said:


> whilhelm But minecraft updates itself (downloads new java packages) automatically, or not? How to stick with given version?


In your profile menu, in the minecraft launcher, you are able to run earlier versions of minecraft. these versions rely on the version of lwjgl that is already ported, and will run.


----------



## whilhelm (Sep 25, 2018)

With some help on #freebsd freenode, I am attempting to compile lwjgl 3.2 on FreeBSD 11.1-STABLE. I have modified lwjgl's build.xml file to compile using gcc8.

https://github.com/LWJGL/lwjgl3/blob/2359eb7b5a9e7e629beae95d3cdab8e997c59039/config/linux/build.xml

And here is my modified build.xml, to work with gcc8:

https://paste.pound-python.org/show/Akuv2tbz32OTgSyqZKfJ/

Using the build instruction found here: 
https://www.lwjgl.org/guide#build-instructions

I am getting the following output:
https://paste.pound-python.org/show/8GO6dhwjNrQFu1ddtx2a/


----------



## graemeg (Oct 14, 2018)

whilhelm said:


> With some help on #freebsd freenode, I am attempting to compile lwjgl 3.2 on FreeBSD 11.1-STABLE. I have modified lwjgl's build.xml file to compile using gcc8.
> ...snip...



I thought it might be worth reporting it to the official developers in the hope that somebody could take Wilhelm's changes and move forward with it. I reported it on Github:  https://github.com/LWJGL/lwjgl3/issues/421


----------



## Petr Fischer (Oct 14, 2018)

graemeg There is also some attempt for FreeBSD fork here (look at the github issue answer): https://github.com/johalun/lwjgl3-port and if the upstream can't pick your changes, you can communicate with lwjgl FreeBSD port maintainer (to add some diffs and tune port Makefile).

I stayed with Minecraft 1.12 for now [for me, solved].


----------



## graemeg (Nov 13, 2018)

Thank you Petr.  With that git repo you mentioned, I managed to compile LWJGL3 and get Minecraft 1.13.2 running on FreeBSD 10.3.


----------

