Oracle made Java in commercial settings fee-based in January 2019. While there can be some exceptions, generally there is going to be a subscription charge for the Java you deploy. Before you cut a check, the most responsible next step is to optimize your Java to minimize your costs. Optimizing Java falls into 3 major areas. you might want to look at all three.
Explore third party support
There is an option for running Java without the need to pay Oracle. It is through the replacement of Oracle JRE with another version called OpenJDK. While OpenJDK is not an exact copy of the version owned by Oracle, it may work well for you and reduce costs.
Here is how OpenJDK came about. In January 2019, Oracle gave a version of Java to the Open Source community resulting in the “forked” use of this software. Some companies, e.g. Red Hat, Azul, and Amazon, used the open source version of Java, and took on the responsibility for providing support and patches to the Java runtime code for OpenJDK.
If you use OpenJDK, you do not pay Oracle for licenses of Oracle JRE, and OpenJDK is free to use. However, you still need support, and that fee would go to a third-party vendor, e.g. Red Hat, Amazon, and Azul. Support charges vary among the companies that offer it.
If you want to switch to the Open Source version, you will need to replace your Oracle version JRE with OpenJDK. While some call this a migration; it is more like a replacement of one product with another, i.e. you would need to uninstall Oracle JRE and then install the OpenJDK
Uninstall unused Java
Since Java was free at one time, most customers originally installed Java on all their servers, or many more servers than actually needed Java. They also probably installed Java on almost all desktops. Experience shows that in most companies Java is actually used on only about 25% of servers, and on far fewer than all desktops. It will benefit you financially to determine where Java is actually needed and where it is not required. Where it is not needed, it should be removed. Keep in mind that support fees are based on installation. If Java is installed, even if not used, a support charge will be assessed. It makes good business sense to reduce your Java footprint to reduce your costs.
Reducing deployment of Java to only the places it is required can reduce your cost for support by as much as 75%. The first step is to generate a detailed baseline indicating everywhere it is installed. Next you need to identify all the places it is required, and then uninstall the product in the remaining locations. You must, of course, test to ensure there are no issues on any servers where Java has been uninstalled.
The most common way companies implement the above process is by using tools already in-house such as Microsoft’s system management tool called SCCM for Windows servers. BigFix, Tanium, and other tools can be used on the Linux side.
Focus on Java running on servers
When you optimize Java, since the support costs for Java running on servers are much higher than the costs for support on desktops, you should focus on the server side first, then focus on end user computing. As shown in the table below, the support cost for Java running on an Oracle server is generally 100 times the cost for a desktop. Support costs of OpenJDK from third parties are also much greater for servers than for desktops.
https://www.oracle.com/assets/java-se-subscription-pricelist-5028356.pdf
While you consider the above options, the next question is--when is the best time to explore and possibly implement one or more of these strategies? We can tell you from experience that the worst time to make changes is when you have received a call from the Oracle Java Sales Representative or a Java licensing review letter from Oracle. You would then have to make quick decisions on support without a full understanding of what you have deployed and what is necessary. It makes good business sense to establish a baseline and optimize your Java position prior to being “cornered” by Oracle.
You can certainly undertake these tasks in-house. However, you might consider hiring a consultant to help ensure smooth planning and implementation, and avoid costly pitfalls. Clarify Consultants has helped numerous customers understand their Java footprint and can help reduce your Java support costs significantly. Contact us at to learn more about this subject or to explore the possibility of working with us.