With the recent changes to the Oracle Java SE 8 licensing and support, which also effect the Oracle Java SE that is shipped with Oracle Solaris, we've been getting some questions. So to help clear things up we decided to write a short blog about this and other questions we get around running Java on Oracle Solaris.
The key thing with regards to Oracle Java SE licensing and support is that starting in January 2019 any commercial/production use of Oracle Java will require a commercial license, even if the Oracle Java being used was shipped as part of an Operating System like Oracle Solaris (see MOS Doc. ID 2370065.1). Now the reality is that a large majority of the use of Oracle Java SE is with applications like Oracle WebLogic Server, and the licenses and support on these not only cover this commercial use, they often come with their own specific Oracle Java install to ensure all the patch levels are in sync. So in that case they're not even using the Oracle Java that's bundled with Oracle Solaris. So here nothing really changed, even if they use the Oracle Java SE that's shipped with the Operating System, Oracle Solaris.
However for those customers that are using the Oracle Java SE that ships with Oracle Solaris, for example because they like how easy it installs and updates, they will need to now pay attention to their licenses. From January 2019 on forward the Oracle Solaris license only covers the commercial use of the Oracle Java it ships for Oracle Solaris components that use Oracle Java, that is to say the applications that ship as part of Oracle Solaris, so for it's own use. Any other use is permitted as long as the right license (and support) are acquired. Again here not too many folks will probably be impacted, because for example many customers that used to use Oracle Java SE for things like system agents have now moved to a language like Python for this task, but still it's important to understand and check.
Another question that we've been getting is around which Java releases we include with Oracle Solaris. We're focused on Long-Term-Support (LTS) releases of Java for maximum investment protection, consistency, and stability. This article has a good explanation of Oracle's plans for LTS and non-LTS releases. Oracle Solaris is a production platform where the focus is on running the LTS releases Oracle Java SE, such as Oracle Java SE 8. As this release is fully supported and sufficient for use by Oracle Solaris components, it is used as the system default version. The reality is that many customers have their production applications built on Oracle Java SE 8 and only now are starting to look at moving to Oracle Java SE 11 for their new applications, which means they will probably still be running Oracle Java SE 8 for a long time. The good news is that the Oracle Java SE 8 release will be supported with Oracle Premier Support at least until 2022, and Oracle Java SE 11 will be supported even longer.
By the way, for those customers that would like to try/use Java 12 on Oracle Solaris, this is still possible of course if you build it yourself with OpenJDK. A pretty strait forward task, as outlined in Martin Müller's excellent blog about how to do this. The benefit here is that you're much more in control of which exact version you compile and use, which is sometimes very important when using non-LTS releases. Similarly of course you could build the OpenJDK version of Java 9 or 10 if you'd still be interested.
More information with regards to the Oracle Java SE releases can be found in this nice FAQ blog by Sharat Chander.