Star Hype News.

Premium celebrity moments with standout appeal.

updates

Minecraft on ARM Chromebook Error: no lwjgl in java.library.path

By Sarah Smith

I am trying to run Minecraft on my ARM Asus Chromebook C201 with XFCE Linux. I followed this post and this post (to make the Java Wrapper), and my Minecraft is crashing with this error

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path.

Full crash report is:

Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.lwjgl.Sys$1.run(Sys.java:72) at java.security.AccessController.doPrivileged(Native Method) at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) at org.lwjgl.Sys.loadLibrary(Sys.java:96) at org.lwjgl.Sys.<clinit>(Sys.java:117) at bib.I(SourceFile:2825) at net.minecraft.client.main.Main.main(SourceFile:38) Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at org.lwjgl.Sys$1.run(Sys.java:72) at java.security.AccessController.doPrivileged(Native Method) at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) at org.lwjgl.Sys.loadLibrary(Sys.java:96) at org.lwjgl.Sys.<clinit>(Sys.java:117) at bib.I(SourceFile:2825) at net.minecraft.client.main.Main.main(SourceFile:38)

And my java_wrapper is:

#!/bin/bash
ARGS=$@
echo $ARGS > /tmp/args_original #uncomment for debugging
JAVA=$HOME/proprietary_java/jdk1.8.0_151/bin/java
JAVA_LIB_SETTING="-Djava.library.path="
JAVA_LIB_PATH="$HOME/MC_libs"
MC_ORIG_LWJGL="$HOME/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
MC_ORIG_LWJGL_UTIL="$HOME/.minecraft/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.ja$
MC_ARM_LWJGL="$HOME/proprietary_java/MC_libs/lwjgl.jar"
MC_ARM_LWJGL_UTIL="$HOME/proprietary_java/MC_libs/lwjgl_util.jar"
ARGS=$(echo $ARGS | sed "s|$MC_ORIG_LWJGL|$MC_ARM_LWJGL|g" | sed "s|$MC_ORIG_LWJGL_UTIL|$MC_ARM_LWJGL_UTIL|g" )
ARGS=$(echo $ARGS | sed "s|-Djava.library.path=[a-zA-Z0-9_\/\\\.-]\+|$JAVA_LIB_SETTING$JAVA_LIB_PATH |g") #magic ;-)
# the magic seems to eat the space-character though; this is why it's added after JAVA_LIB_PATH (I'm not good at regex)
#"[a-zA-Z0-9_\/\\\.-]\+" explained:
# match a-z and A-Z and 0-9 and '_' and '/' and '\' and '.' and '-' (this must be at the end it seems).
# "\+": escape the '+'; match this pattern multiple times.
# (this means: start at "-Djava.library.path=" and stop replacing at the first space that occurs)
#echo $ARGS > /tmp/args_modified #uncomment for debugging
$JAVA $ARGS
ARGS=$@
#echo $ARGS > /tmp/args_original #uncomment for debugging
JAVA=/usr/java/jdk1.8.0_151/bin/java
JAVA_LIB_SETTING="-Djava.library.path="
JAVA_LIB_PATH="$HOME/MC_libs"

Thanks for any help! :)

3

1 Answer

You mentioned following the link from forum.lwjgl.org, which mentions that you had to compile an ARM version of that library yourself. Was this successful? Did you have issues at any point in that process?

I followed the links on that same site () down the rabbit hole until I managed to sort-of get it to work in Crouton with XFCE on my ASUS Chromebook. It was painfully slow because there is no hardware acceleration under Crouton.

TL;DR: Yes, it probably still can be done if you manage to compile LWJGL for ARM and get the loader to use your version, but it is probably going to be much slower than you think it will be.

1