For most developers, Java is somewhat the definition of Open Source. Although the story of Java licensing is a long and complicated one, Oracle has certainly now written a new chapter as it will now start charging all non-personal users for the usage and support of its Java SE platform. While Oracle had announced this move a few months back, there has been some updates since.
Starting on April 16th, 2019, Oracle’s website informed all non-personal users and developers: “The new Oracle Technology Network License Agreement for Oracle Java SE is substantially different from prior Oracle Java licenses. The new license permits certain uses, such as personal use and development use, at no cost — but other uses authorized under prior Oracle Java licenses may no longer be available. Please review the terms carefully before downloading and using this product.”
Let’s have a closer look at each of the components. There are several ways you can license Java SE for non-personal use. For usage and support, Oracle distinguishes how you will be using the platform:
The licensing uses a commonly used model, popular with Linux distributions, and includes:
Please note, that the Oracle OpenJDK under the open source GNU General Public License v2, with the Classpath Exception (GPLv2+CPE) (since Java 9) and the Oracle Java SE (including the Oracle JDK for Java 8 and later and Oracle JRE with Java Web Start in Java 8) under the OTN License Agreement for Java SE for personal use, development, testing, prototyping, and demonstrating will remain free of charge.
In addition, non-personal users utilizing Oracle Development tools, including the Oracle Java Development Tools Support (including NetBeans, Oracle JDeveloper, and Oracle Enterprise Pack for Eclipse) and Oracle Solaris Development Tools Support (NOT including support for the Solaris OS), will also now have to cough up $1,200 per named user per year. However, it is important to know that this does not include any support for upgrades, e.g., upgrade tools or scripts.
Because of its popularity, Java has been used in countless third-party applications and enterprise IT environments. This substantial change in licensing model is creating a lot of turmoil and questions.
Let’s start with an obvious question: How do you know if this is even a problem for you? Simply put, you would have to inspect each and every application’s source code to find out if you have to pay licenses or not. This can be done manually or by using our quick and easy-to-use AppScan product to automate the process. Simply scan all your applications and AppScan will be able to tell you how many and which applications are subject to this new licensing agreement.
What happens if you are currently using an Oracle product — will you have to pay extra licensing for the use of Java SE? Oracle has confirmed that any customer with paid support entitlement will “continue to have free access to any Oracle Java SE updates for use with that Oracle Product”.
The answer is not so straight-forward for any third-party business application, e.g., SAP business apps. If your application provider has an ISV agreement with Oracle in place to provide you with Java updates to run their product, you will not need a separate license from Oracle for Java running on the application. However, it is your responsibility to determine if your ISV has such an agreement in place.
Another great question is how Java SE will be licensed in a virtual environment — one in which, for example, you may be using Java on a core VMware. While Oracle did not address this concern specifically in their Q&A or any other documentation, I would assume you would have to count every processor running in your your network.
If you prefer not to pay Oracle licenses for Java SE, you could move to OpenJDK (which is still free and has feature parity with the OracleJDK right now until the next release cycle), go to OpenJDK but get your support from Red Hat, or adopt other open source flavors such as IcedTea 3.0 or AdoptOpenJDK.
Whatever your decision is moving forward, it is important to get an understanding of your current situation right now. The best way to do that is to scan your environment using Access AppScan. Once you know which applications will cause issues, you can approach your ISVs or take internal measures to be compliant with the new licensing agreement or move away to a different solution.