Ignition + (OpenJDK vs OracleJDK vs AzulJDK)?

Recently i received a mail from IA support, which says:

“We are hard at work developing Ignition v8.0 and when we release it later this year we are planning to bundle Java into the Ignition install. In v8.0, there will be no need to install Java to launch clients. This will make the experience of using Ignition simpler to manage and easier to maintain”.

This is a very good decision and appreciated. Meanwhile on my Ubuntu 17.10 home server, i have:

openjdk version “1.8.0_162”
OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-0ubuntu0.17.10.2-b12)
OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode)
Ignition: 7.9.5

So far, i didn’t find any performance issues. Everything seems to be working normal. I would like to know, which is the best recommended option by IA for Ignition?.
OpenJDK or OracleJDK or AzulJDK?

OpenJDK is recommended unless you feel you need commercial support for some reason.

2 Likes

Nice to hear this will be the official recommendation. It used to be the other way around :wink:

Does someone know how easy it is to switch from Oracle JDK to OpenJDK on Windows? I hope it doesn’t cause too much issues with the registry keys etc.

Btw, most Linux distributions already offer OpenJDK inside their repositories, so that should be quite easy to install or replace the Oracle JDK.

1 Like

Thanks :slight_smile: So, shall we conclude that Oracle's decision whatsoever in future will NOT affect OpenJDK users?.

It did used to be that way, but as of JDK 7 or 8 the code bases converged, OpenJDK became the reference implementation, and performance equalized. And as of JDK 9 the 32-bit and 64-bit Hot Spot engine for ARM also became part of OpenJDK.

Yes, Oracle's licensing changes only effect those who want to remain on the Oracle-provided JVM.

3 Likes

This should do the trick for users of Oracle’s JDK8 on Ubuntu (headless in this case):

apt -y install openjdk-8-jdk-headless ; \
apt -y remove oracle-java8-set-default oracle-java8-installer ; \
apt -y autoremove
2 Likes

Eh, probably don’t want to use the headless version. Breaks the mobile module.

2 Likes

I understand that installation of Java isn’t required to launch a Perspective client, but what about a Vision client or a Designer session?

Java Web Start is deprecated since Java 9 and unsupported by OpenJDK. Will users be refered to native client launchers from now on?

1 Like

Yes. We are working on a refresh of the native launchers that will include a bundled JVM as well. These will be released in both 7.9 and 8.0+.

Web Start is dead. You can remain on Java 8 and continue using it for as long as you want, but it'll be best to migrate to native launchers once we release the new ones.

3 Likes

Here’s our official stance on all the Java changes: https://inductiveautomation.com/blog/the-real-deal-about-java-and-the-future-ignition

4 Likes

I installed new Ubuntu 18.04 on my machine, 2 days back. I installed open JDK and didn't install any oracle JDK. But, strangely this is what i see.

alam@alamdtubuntu1804:~/tcp-client-server$ lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic

alam@alamdtubuntu1804:~/tcp-client-server$ java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

alam@alamdtubuntu1804:~/tcp-client-server$ sudo update-alternatives --config java
There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.

Systems overview page shows:

Java Version: 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11

But the script console shows:
Jython 2.5.3 (v2.5.3:3d2dbae23c52+, Nov 17 2012, 11:51:23)
[OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.8.0_171

What's the solution?. Thanks.

I uninstalled the ubuntu openjdk completely, downloaded AdoptOpenJDK, extracted into /opt folder, configured .bash_profile, rebooted my server, restarted Ignition and checked.

alam@alamdtubuntu1804:~$ echo $JAVA_HOME
/opt/jdk8u172-b11/bin/java

alam@alamdtubuntu1804:~$ java -version
openjdk version "1.8.0-adoptopenjdk"
OpenJDK Runtime Environment (build 1.8.0-adoptopenjdk-jenkins_2018_05_19_01_00-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode)

Systems overview page shows:

Java Version: 1.8.0-adoptopenjdk-jenkins_2018_05_19_01_00-b00

Architecture:

Gateway | Ignition-alamltubuntu1804
Version: 7.9.8 (b2018060714)
License: trial
Uptime: 22 minutes

script console still shows Oracle

Jython 2.5.3 (v2.5.3:3d2dbae23c52+, Nov 17 2012, 11:51:23)
[OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.8.0-adoptopenjdk

I’m not sure who you think the primary driver of the OpenJDK project is (hint: It’s still Oracle!) but that version string in the script console is just returning the value of the system property java.vm.vendor. If it bothers you that much, you can always build it yourself which is the real advantage of OpenJDK.

from java.lang import System
print System.getProperty("java.vm.name")
print System.getProperty("java.vm.vendor")
1 Like

It looks like there is now yet another alternative, Amazon Corretto. It was announced in a blog post.

There’s also an official site:

I have no idea if using this would be a good idea. Also, it’s interesting to note that they have it for Mac, and Windows, but if you want it on Linux you have to be using Amazon Linux 2 or Docker.