Docker image, OpenJDK / Oracle

I am trying to understand why the Oracle JVM is not used in the official Docker image. I am trying to migrate from my homebrewed Docker image to the official one and this is one of the differences.

(Background: I can’t get the official image to start Z-wave due to JNI errors, I am still investigating why and when I am comparing with my own, I see that they use different JVMs. For clarity, this question is about why the Docker image does not use Oracle, not about troubleshooting my JNI issues)

As far as I understand it, OpenJDK still has lots of compatibility issues. Or is my information outdated?

Edit: The reason for the JNI errors was that my compose file lacked the following:
_ tmpfs:_
_ - /openhab/userdata/tmp:exec,mode=777_

Otherwise the .so files were written on a non-executable filesystem and could not be loaded by JAVA. Again, off topic for this question :slight_smile:

If I remember correctly this has to do with the Oracle license. When installing the Oracle JVM the user must accept the license. However, when using a docker container, then the maintainer of the docker container accepts the license, not the user of the docker container. This means that the user is then violating the Oracle license without being aware of it.

1 Like

Sounds like a reasonable answer. I suspected something like that, but I just wanted to know it there were any technical reasons.

See also here. Note that we do not use plain OpenJDK (which indeed has a few compatibility issues), but ZuluVM instead - which does not have the license issues as OracleJDK and also does not show any performance or compatibility issues.

1 Like

OK, I suppose the best JVM is the JVM that development happens on anyway :slight_smile: Thank you for the answer.

I also didn’t know the difference between Zulu and ordinary OpenJDK until now.