Universal Graves

Universal Graves

3M Downloads

Universal Graves requires full (graphical) JVM on server

gniftygnome opened this issue ยท 6 comments

commented

This might be a wontfix but I figured I would ask ... It seems like Universal Graves tries to initialize some GUI code on the server which requires the full (not headless) JVM. I don't like having a bunch of unused graphical environment installed on the server.

OpenJDK headless JRE 17.0.1+12-1+deb11u2
Minecraft 1.18.1
Fabric Loader 0.12.12
fabric-api-0.45.1+1.18.jar
graves-2.0.0-beta.3+1.18.jar
(and lots of other mods)

java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'universal-graves'!
[...]
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-17-openjdk-amd64/lib/libawt_xawt.so
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2393) ~[?:?]
[...]
        at javax.imageio.ImageIO.<clinit>(ImageIO.java:66) ~[?:?]
        at eu.pb4.graves.GenericModInfo.build(GenericModInfo.java:24) ~[graves-2.0.0-beta.3+1.18.jar:?]
        at eu.pb4.graves.GravesMod.onInitialize(GravesMod.java:38) ~[graves-2.0.0-beta.3+1.18.jar:?]
        at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47) ~[fabric-loader-0.12.12.jar:?]

Full log:
graves-crash.log

commented

Hmm, it's not catched by try {} catch sadly. Technically it's not required for mod to function, through ideally you should have these (as other mods might require them). I used ImageIO since it was described to work in headless jvm

commented

described to work in headless jvm

That's a bummer. I vaguely recall there have been some builds of the headless JVM in earlier Java versions that included some of AWT because of things like printing. So it could be a "somewhat true" statement.

commented

Oh I meant to say, about other mods requiring it, of course that's true. However FWIW I've got quite a few on the server and so far only Universal Graves mod has crashed for this reason.

commented

Not when using builds of OpenJDK that split it into GUI/non-GUI components. I've been running modded Minecraft servers for years now without the graphical JVM components. But thanks for considering it. I've gone back to the somewhat less featureful Graves datapack from Vanilla Tweaks.

commented

It is required by dependency anyway, so ideally you should have it

commented

Everything that manipulates images uses so there is still chance some other server side mods will require it. I would switch if there was better alternative