Specify Java JRE per Server


I recently updated my MineOS TKL box to the new version (nuked and paved to Debian buster) so I could run Minecraft 1.17. I had to install OpenJDK 16 (OpenJDK Runtime Environment (build 16.0.1+9-24)) to make it work.

On the old server, I had Vanilla, PlotSquared and a RAD server.

Vanilla: Works great!

I also have a PlotSquared server that I updated: works great!

RAD: No go. RAD is built on 1.12.2 and 1.12.2 does NOT like OpenJDK 16.

Java on the server:

update-alternatives --display java
java - manual mode
  link best version is /usr/lib/jvm/java-11-openjdk-amd64/bin/java
  link currently points to /usr/java/openjdk/jdk-16.0.1/bin/java
  link java is /usr/bin/java
  slave java.1 is /usr/share/man/man1/java.1
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/java/openjdk/jdk-16.0.1/bin/java - priority 1
/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java - priority 1081
  slave java.1: /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/man/man1/java.1
/usr/lib/jvm/java-11-openjdk-amd64/bin/java - priority 1111
  slave java.1.gz: /usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz

So I tried with OpenJDK 11 from the CLI:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar forge-1.12.2-

Get this error:

A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
        at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
        at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
        ... 6 more

Same thing with 16, but if I run it with this from the CLI the server launches normally:

.../servers/RAD$ /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java -jar forge-1.12.2-

Is there anyway for me to specify in the MineOS UI that I want to use Java 8 for this RAD server? I’ve been looking at JAR and Java arguments, but nothing seems to fit (though my Google Fu may be weak). I don’t want to mess with all my path variables because that would break the servers on 1.17.
Could that be a feature request? I have older mod packs I want to run, but can’t because they won’t play well with Java 16, and a lot of the mods I enjoy haven’t been migrated to newer Minecraft versions yet.


Not currently in the UI, but available by editing the config from terminal: