Posts

7 reasons to switch from Oracle JDK to OpenJDK

Aug 14, 2020
Alex Belokrylov
26.5

It seems that Oracle developed a habit of changing licensing conditions for Oracle JDK every two years:

  • In January 2019, it stopped releasing free builds of Oracle Java SE 8 for commercial use;
  • In 2021, the company announced a change in its licensing policy with the release of JDK 17. LTS-releases are now released every two years and according to a new license, receive free updates for 3 years. After that, enterprises have to migrate to the next LTS version or pay for commercial support;
  • In 2023, the vendor overturned the pricing model completely by introducing the new “Employee for Java SE Universal Subscription” metric. According to it, the number of licenses is calculated based on the number of employees, including full-time, part-time, temporary employees and employees of agents, contractors, outsourcers, and consultants that support internal business operations.

If you have stumbled upon this article, chances are that your enterprise considers migrating from Oracle JDK. 

In the upcoming paragraphs, we will compare Oracle JDK and OpenJDK so that you can decide whether migration will be beneficial for your project. You can also read more about the OpenJDK project in our What is OpenJDK article.

What is Oracle Java?

Oracle Java (or Oracle JDK) is a set of computer software and specifications initially developed at Sun Microsystems and then acquired by Oracle. Oracle Java rapidly gained popularity in various sectors, such as banking and fintech, e-commerce, game development, etc.

In 2006, the OpenJDK project was born following the promise of Sun Microsystems to make Java code open-source. When Oracle stopped releasing free builds of Oracle Java SE 8 for commercial use and changed Java licensing policy, many enterprises turned to OpenJDK as a reliable and free alternative to Oracle Java.

Are OpenJDK and Oracle JDK the same?

Both Oracle JDK and OpenJDK are developed on the same code base, so the technological foundation is the same. But for many people, Oracle means a “prominent trustworthy company,” which is true, while OpenJDK means “some community trying their best making open source Java runtime” — and here is where they are wrong. Take BellSoft, one of the major OpenJDK enterprise contributors: before launching the company, its founders and engineers have worked at Oracle for years. They know Java™ on multiple levels like they know their own mind and do everything to meet the standards. Liberica binaries have passed all the Technology Compatibility Kit (TCK) tests for Java provided by Oracle and are fully ratified in the Java Community Process.

What is the difference between Oracle JDK and OpenJDK?

The pivotal difference between Oracle JDK and OpenJDK is licensing. OpenJDK is an open-source project licensed under GPLv2 + Classpath exception. On the other hand, Oracle Java is closed source, and enterprises need to purchase commercial licenses to receive Java updates. Oracle JDK versions are available under various licenses:

  • Starting with Oracle JDK 17, the builds are available under the Oracle No-Fee Terms and Conditions license;
  • Oracle JDK 11 and 8 are available via My Oracle support or under the OTN license that permits personal use.

You can read more on terms and conditions of mentioned licenses in our article dedicated to Java licensing.

Other differences are associated with additional functionality and supported platforms. For instance, Oracle Java doesn’t include Shenandoah GC, but it is shipped with Liberica JDK and other major OpenJDK distributions. A comprehensive comparison of features offered by the most popular OpenJDK distributions and Oracle Java can be found in the Oracle Java alternatives article.

Is it difficult to migrate from Oracle to OpenJDK?

No, it isn’t. Both are implementations of the same Java specification, so switching requires little to no adjustments. Your engineering team could pick a Liberica JDK container image right now, literally change one line of code, and use the base distribution without issues.

Is OpenJDK secure?

The latest OpenJDK releases are immensely safer than outdated releases from Oracle with a permissive license. The OpenJDK community members, both companies and individual developers, constantly hunt down vulnerabilities and bugs and promptly fix them. For instance, BellSoft signed the OCTLA and became a part of the Vulnerability Group alongside other major distributors such as Oracle, SAP, Amazon, and Red Hat. Together they search for, review, and patch security issues.

Is OpenJDK performant?

From the JVM performance point, it has no differences from Oracle JDK. Moreover, the performance equality is confirmed by major industry-standard benchmarks (SPECjbb, SPECjvm) and microbenchmarks embedded in the OpenJDK code.

Can you use OpenJDK for enterprise development?

OpenJDK is an optimal choice for enterprise development. As we stated earlier, it is performant, reliable, and secure. With OpenJDK, you are able to use the runtime without any vendor participation. At the same time, it is possible to acquire commercial support from an OpenJDK vendor at much more affordable prices than from Oracle.

If you choose to work with a vendor, it is good to have a clear idea of which company is the supplier of your underlying technology to avoid vendor lock-in. BellSoft guarantees no lock-in by providing builds of vanilla OpenJDK and contributing all the fixes upstream.

Can you use OpenJDK for closed-source applications?

Copyleft licenses, such as the GNU General Public License (GPL), are considered viral. Any code that uses a GPL library automatically becomes GPL as well. Contrary to popular belief, OpenJDK does not mean that anything linking to it needs to be distributed under the GPL terms. The license for OpenJDK is not just “GPL v2”, it is “GPL v2 with the Classpath Exception.” It allows linking OpenJDK with any independent module regardless of GPL terms, copying and distributing the resulting files under terms of your choice. Obviously, this independent module can be your proprietary code, which means that you may utilize the GPL components of OpenJDK while maintaining the integrity of your intellectual property. Your products thus may be copyrighted under a different license.

Does OpenJDK provide all the features Oracle JDK has?

If we talk about most versions after Java 8, the current OpenJDK and Oracle JDK releases show no differences. However, version 8 has certain technologies absent in OpenJDK (that are gradually being backported). The table below shows all the qualities and features that distinguish Liberica JDK from Oracle JDK with some alternative tools that may replace the original Oracle JDK 8 components.

Comparison of OpenJDK and Oracle JDK

The table below demonstrates the difference between OpenJDK and Oracle Java using Liberica JDK as an example. 

 

 

Liberica JDK

Oracle JDK

License, Security, Compatibility, and Sources

Based on OpenJDK

Yes

Yes

 

Open-source license, no field of use restrictions

Yes

Versions up to JDK 17 are under OTN. Starting with JDK 17, the license is NFTC

 

Quarterly Security Updates

Yes

Yes

 

Compliance with Java SE specification guaranteed by TCK

Yes

Yes

 

Performance Parity with Oracle Java SE

Yes

Yes

 

Guaranteed LTS (8, 11) and Feature (12, 13, 14) versions

Yes

Yes

Platforms & Installers

Windows x86 (64 bit)

Yes

Yes

 

Windows x86 (32 bit)

Yes

JDK 8 only

 

macOS

Yes

Yes

 

Linux x86 (64 bit)

Yes

Yes

 

Linux x86 (32 bit)

Yes

JDK 8 only

 

Alpine Linux x86 (64 bit, musl)

Yes

Yes

 

Linux ARM (32 bit)

Yes

JDK 8 only, Embedded license

 

Linux ARM (64 bit)

Yes

JDK 8 only

 

Solaris Sparc

JDK 8, 11

JDK 8, 11

 

Solaris x86 (64 bit)

JDK 8, 11

JDK 8 only

 

Windows Installers

MSI

EXE

 

Mac Installers

DMG, PKG

DMG

 

Linux Installers

DEB, RPM, TAR.GZ

DEB, RPM, TAR.GZ

 

Variety of bundle types

Lite, Standard, Full, JDK/JRE

Standard, Server JRE/JDK

 

Linux Repositories (yum, apt)

Yes

No

Product Features

JDK Flight Recorder

JDK 8+

JDK 8, JDK 11

 

Java Mission Control

Yes

Yes

 

OpenJFX (JavaFX)

JDK 8, 11, 17

JDK 8 only

 

Java Web Start and Applets

JWS is supported in the Commercial Bundle with OpenWebStart from Karakun

Yes

 

Graphics Renderer

Marlin in JDK 8, 11

Ductus in JDK 8, Marlin in JDK 11

 

Font rendering engine

Freetype in JDK 8, 11

T2K in JDK 8, Freetype in JDK 11

Commercial Support

Provided for Supported Platforms & Environments

Yes

Yes

 

24x7x365 Support (1-hour SLA)

Yes

Yes

 

SLA for Quarterly Updates

Yes

Yes

 

Out-of-cycle Critical Fixes (independent from OpenJDK)

Yes

Yes

 

Commercial Support Production Lifecycle

2031 for Java SE

2026 for JavaFX

2030 for Java SE

2025 for JavaFX

 

Engineering capacity to root-cause and fix bugs (independent from OpenJDK)

Yes

Yes

As you can see, migration to OpenJDK doesn’t pose any security or compatibility risks. On the contrary, it will enable you to eliminate vendor lock-in and optimize software expenses.

The next big question is: which OpenJDK distribution to choose?

Liberica JDK — OpenJDK distribution for modern Java for modern Java deployments

1. Liberica JDK provides the most complete Java experience

Migration to Liberica JDK enables you to cover all your Java needs:

  • The Liberica JDK binaries are supported on most existing platforms and system configurations;
  • BellSoft supports legacy Java versions 6 & 7, all LTS versions (8, 11, 17), feature releases, and GraalVM;
  • We developed a special Liberica JDK Lite version optimized for cloud deployments, which helps to minimize resource consumption;
  • You can utilize Liberica JDK for Embedded for systems with lower performance. 

In addition, to Liberica JDK you gain access to other useful Java utilities:

  • Convert Java apps into native images with accelerated startup using our GraalVM-based Liberica Native Image Kit. It is utilized by default with Cloud Native Buildpacks and recommended by Spring as a Native Build tool;
  • Control and update all corporate Java runtimes from one window with Liberica Administration Center; 

But there is more! In 2022, our engineers developed Alpaquita Linux, a lightweight distro that comes with two libc implementations (optimized musl and glibc) and Java tools facilitating the development and deployment of Java applications. Coupled with Alpaquita, Liberica JDK enables you to build the smallest containers on the market that can take up as little as 38 MB!

And if you seek higher availability and predictable scalability in the cloud, Liberica JDK supports Coordinated Restore at Checkpoint API that gives your Java apps almost instant startup at peak performance and allows for optimized resource consumption. Follow our guide on using Java with CRaC in a container and give this feature a try.

As a result, by switching from Oracle to Liberica JDK, you save on support, but at the same time create a full software stack tailored to your needs.

2. Liberica JDK is affordable

You may use our binaries for free. But if you would like to have a reliable partner who is there for you 24/7, and gives feedback on your query within 24 hours based on SLA, BellSoft offers versatile support plans with per-instance pay which are much less costly than Oracle’s, considering that Oracle counts employees, not equipment.

For example, you have 50 servers and 250 employees. You will pay $15,000 per year for Liberica JDK or $45,000 per year for Oracle Java. In case you have 500 servers and 2,500 employees, the annual subscription for Liberica JDK will be $70,000 and for Oracle Java — $360,000. The calculation is based on the prices effective in November 2022 and presented on corresponding Oracle Java SE Universal Subscription Global Price List and Liberica JDK support price pages.

3. Liberica JDK is safe

We provide continuous updates for the current and LTS versions with bug fixes and security patches as part of the CPU (critical patch update) quarterly release cycle. Commercial customers also receive off-cycle and extra patches not yet included into the OpenJDK code.

4. Liberica JDK offers JDK Flight Recorder + Mission Control for free

These indispensable tools were first introduced in Oracle Java 7, along with other features that required licensing and subscription. Since the release of JDK 8u262, everyone can use them in all Liberica versions unconditionally.

5. Liberica JDK is easy to install

We have more channels to deliver Liberica JDK to our customers than any other vendor. Starting with Java 17, Oracle JDK is released under a new “Oracle No-Fee Terms and Conditions” (NFTC) License, where sanction restrictions are explicitly mentioned. New Oracle JDK builds are provided on the official website of the company. Previous Oracle JDK versions are still licensed under Oracle Technical Network (OTN), and OTN serves as a centralized repository for registered Oracle users.

BellSoft offers a broad choice:

  • Pick a container image on Docker Hub;
  • Download a Windows auto-installer;
  • Install a repository for Linux;
  • Find builds on package managers;
  • Download binaries directly from the website or through our public API.

Not to mention early access builds that we provide for all update releases so that our clients could test them beforehand. Note that the build with the JFR port for JDK 8 is included into release builds of Liberica JDK and builds of other OpenJDK vendors with HotSpot. However, Oracle has a closed JFR implementation, this function is provided with a flag on a commercial basis.

In addition, if you use buildpacks to automate the containerization process, Liberica JDK is the default JVM in Paketo buildpacks.

6. Liberica JDK is compliant with standards

We believe in quality level testing for our customers’ peace of mind. All produced binaries are verified by TCK for Java SE specifications. Moreover, Liberica JDK for macOS is a notarized product, which means you can refer to it when developing your applications on this platform.

7. Liberica JDK is in touch with the community

Being among the major OpenJDK contributors, we make sure that any bug we fix for a client during troubleshooting is immediately corrected for everyone. We do not have a downstream repository, so our fixes get integrated into the JDK mainline branch as fast as possible, unlike some other vendors that work towards eventual consistency with OpenJDK.

To learn more about Liberica JDK technical characteristics and use cases, download the Product Summary by clicking the button below.

Download Liberica JDK white paper

Customer success stories

Millions of users all over the world already use Liberica JDK. The majority of our clients have traveled the same path you are going to and migrated from Oracle JDK to Liberica. Let’s see what they say about their digital transformation and overall experience with BellSoft.

VMware Tanzu

VMware is a leading provider of multi-cloud services for all applications. Over the years, BellSoft has supported VMware’s JDK development efforts by providing Liberica JDK. Satisfied with timely and reliable support, VMware invited BellSoft to extend the relationship by providing compiler and Java Runtime support for Spring Native — a recent addition to the Spring Framework ecosystem for compiling Spring Boot applications into native executables. VMware now provides their users with both native support for Spring and Liberica Native Image Kit through the Native Image Buildpack.

OOCL


OOCL is one of the world's largest integrated international container transportation and logistics companies. OOCL provides transportation services in Asia, Europe, the Americas, Africa and Australasia. Liberica JDK delivers the stable and secure Java environment that helps OOCL to provide its customers with fully-integrated logistics.

JetBrains

We asked Konstantin Bulenkov, JetBrains Runtime Lead: Why did you choose BellSoft as the partner to support JetBrains Runtime?

“When Apple made the decision to discontinue support for JDK on macOS, we ended up facing a major problem with respect to text rendering quality in the IntelliJ editor. So we decided to start the JetBrains Runtime project. The biggest fear we had before making the switch to our own runtime was security. And Oracle’s move last year to stop providing public updates for JDK 8 forced us to work on finding a way to make JetBrains Runtime more secure. We realized that Liberica JDK is a 100% open source project, and BellSoft is one of the leading OpenJDK contributors. BellSoft, part of OpenJDK Vulnerability Group, collaborates with other contributors to keep OpenJDK robust. JetBrains relies on the Liberica team’s experience and expertise to provide timely updates for our customers; together, we keep JetBrains Runtime secure and performant.”

Have we convinced you to switch from Oracle JDK? Leave your details by clicking the button below, consult with BellSoft’s professional team and start your migration now!

Flow Traders

We asked Yury Vasyutinskiy, Team Lead at Flow Traders: What were the essential aspects you sought in a Java runtime vendor?

“Flow Traders is a leading global financial technology-enabled liquidity provider in financial products, historically specialized in Exchange Traded Products (ETPs), now expanding into other asset classes. Flow Traders ensures the provision of liquidity to support the uninterrupted functioning of financial markets. It allows investors to continue to buy or sell ETPs or other financial instruments under all market circumstances. We continuously grow our organization, ensuring that our trading desks in Europe, the Americas and Asia can provide liquidity across all major exchanges, globally, 24 hours a day. Technology is a key component in enabling this growth; therefore, we aim to be in as much control as possible to our trading platform. Thus, we develop and maintain a large code base with dedicated in-house resources.

Due to the change in the licensing model for Oracle JDK, we have decided to look around for other JDK vendors. We embrace innovation and new technologies, as we believe that helps us to step up our game. But we stay pragmatic and check all the details thoroughly. Hence several requirements were identified for switching to a new vendor solution:

  1. Stability of the distribution;
  2. Clear SLA on security patches delivery;
  3. Full compatibility with our landscape;
  4. Performance of the distribution.

At Flow Traders, we invest significantly in the quality of our products. Being one of the leading global ETP liquidity providers, we have extensive quality control systems that cover both functional and non-functional aspects of our products. We have conducted a series of different tests to check all the requirements. As a result, Liberica JDK was chosen as our main JDK distribution. We are satisfied with the Liberica JDK as we managed to onboard it without any major hiccups. We are also very happy with the level of support provided by the Bellsoft team and are looking forward to strengthening our relationship in the coming years.”

Have we convinced you to switch from Oracle JDK?

Leave your details by clicking the button below, consult with BellSoft’s professional team and start your migration now!

Contact us!

Subcribe to our newsletter

figure

Read the industry news, receive solutions to your problems, and find the ways to save money.

Further reading